Merge branch 'master' into 21436/resolve-description-conflict
Signed-off-by: Tiago Barbosa <t1agob@users.noreply.github.com>
This commit is contained in:
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/plugin-catalog-backend-module-backstage-openapi': patch
|
||||
---
|
||||
|
||||
Support authenticated backends
|
||||
@@ -0,0 +1,6 @@
|
||||
---
|
||||
'@backstage/frontend-plugin-api': patch
|
||||
'@backstage/frontend-app-api': patch
|
||||
---
|
||||
|
||||
Added the nav logo extension for customization of sidebar logo
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/plugin-catalog-react': patch
|
||||
---
|
||||
|
||||
Added pagination support to `EntityListProvider`.
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/eslint-plugin': patch
|
||||
---
|
||||
|
||||
The `no-undeclared-imports` rule will now prefer using version queries that already exist en the repo for the same dependency type when installing new packages.
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/create-app': patch
|
||||
---
|
||||
|
||||
Bumped create-app version.
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/create-app': patch
|
||||
---
|
||||
|
||||
Bumped create-app version.
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/core-components': patch
|
||||
---
|
||||
|
||||
Minor improvements to `Table` component.
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/plugin-catalog': patch
|
||||
---
|
||||
|
||||
Fix copy entity url function in http contexts.
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/plugin-auth-backend-module-vmware-cloud-provider': minor
|
||||
---
|
||||
|
||||
Add VMware Cloud auth backend module provider
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/core-plugin-api': patch
|
||||
---
|
||||
|
||||
The `createTranslationRef` function from the `/alpha` subpath can now also accept a nested object structure of default translation messages, which will be flatted using `.` separators.
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/frontend-app-api': minor
|
||||
---
|
||||
|
||||
Updated core extension structure to make space for the sign-in page by adding `core.router`.
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/plugin-bazaar': patch
|
||||
---
|
||||
|
||||
Internalize 'AboutField' to break catalog dependency
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/plugin-scaffolder-react': patch
|
||||
---
|
||||
|
||||
Fixed bug in `ReviewState` where `enum` value was displayed in step review instead of the corresponding label when using `enumNames`
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/plugin-techdocs-addons-test-utils': patch
|
||||
---
|
||||
|
||||
Remove unnecessary catalog dependency
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/frontend-plugin-api': patch
|
||||
---
|
||||
|
||||
Add feature flags to plugins and extension overrides.
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/backend-common': patch
|
||||
---
|
||||
|
||||
Use `Readable.from` to fix some of the stream issues
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/frontend-app-api': patch
|
||||
---
|
||||
|
||||
Collect and register feature flags from plugins and extension overrides.
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/plugin-home': minor
|
||||
---
|
||||
|
||||
Added view of entities grouped by kind to make it easier to distinguish entities with different kind but same name
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/plugin-catalog-react': patch
|
||||
---
|
||||
|
||||
Add default icon for kind resource.
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/frontend-test-utils': patch
|
||||
---
|
||||
|
||||
Updates for `core.router` addition.
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/backend-app-api': patch
|
||||
---
|
||||
|
||||
Ensure redaction of secrets that have accidental extra whitespace around them
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/backend-app-api': patch
|
||||
---
|
||||
|
||||
Add redacting for secrets in stack traces of logs
|
||||
@@ -0,0 +1,6 @@
|
||||
---
|
||||
'@backstage/core-app-api': patch
|
||||
'@backstage/cli': patch
|
||||
---
|
||||
|
||||
Added deprecation warning for React Router v6 beta, please make sure you have migrated your apps to use React Router v6 stable as support for the beta version will be removed. See the [migration tutorial](https://backstage.io/docs/tutorials/react-router-stable-migration) for more information.
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/plugin-kubernetes-react': patch
|
||||
---
|
||||
|
||||
Add ID property to the table displaying kubernetes pods to avoid closing the info sidebar when the data reloads and needs to rerender.
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/frontend-plugin-api': patch
|
||||
---
|
||||
|
||||
Added `createSignInPageExtension`.
|
||||
@@ -0,0 +1,7 @@
|
||||
---
|
||||
'@backstage/plugin-catalog-react': patch
|
||||
'@backstage/plugin-search-react': patch
|
||||
'@backstage/plugin-catalog': patch
|
||||
---
|
||||
|
||||
Internal refactor of alpha exports due to a change in how extension factories are defined.
|
||||
+59
-2
@@ -252,7 +252,64 @@
|
||||
"@backstage/plugin-vault": "0.1.21",
|
||||
"@backstage/plugin-vault-backend": "0.4.0",
|
||||
"@backstage/plugin-vault-node": "0.1.0",
|
||||
"@backstage/plugin-xcmetrics": "0.2.45"
|
||||
"@backstage/plugin-xcmetrics": "0.2.45",
|
||||
"@backstage/frontend-test-utils": "0.0.0",
|
||||
"@backstage/plugin-auth-backend-module-atlassian-provider": "0.0.0",
|
||||
"@backstage/plugin-auth-backend-module-okta-provider": "0.0.0"
|
||||
},
|
||||
"changesets": []
|
||||
"changesets": [
|
||||
"angry-eagles-end",
|
||||
"angry-gorillas-unite",
|
||||
"angry-walls-despacito",
|
||||
"angry-walls-juggle",
|
||||
"brave-socks-raise",
|
||||
"breezy-pans-glow",
|
||||
"bright-eyes-film",
|
||||
"chatty-actors-live",
|
||||
"chilled-terms-breathe",
|
||||
"cold-pans-crash",
|
||||
"create-app-1700579510",
|
||||
"create-app-1700607979",
|
||||
"curly-walls-relate",
|
||||
"dry-readers-raise",
|
||||
"eleven-ants-pretend",
|
||||
"empty-dingos-grow",
|
||||
"gentle-lies-greet",
|
||||
"gold-shirts-yell",
|
||||
"great-rings-type",
|
||||
"hot-wolves-flash",
|
||||
"kind-badgers-rush",
|
||||
"large-weeks-accept",
|
||||
"long-wolves-return",
|
||||
"lovely-terms-search",
|
||||
"lucky-kids-cough",
|
||||
"metal-eggs-smile",
|
||||
"mighty-beans-wink",
|
||||
"nasty-tips-exercise",
|
||||
"perfect-apes-sing",
|
||||
"pink-dryers-repair",
|
||||
"plenty-numbers-enjoy",
|
||||
"polite-knives-build",
|
||||
"poor-pandas-dream",
|
||||
"proud-flies-travel",
|
||||
"quick-horses-reply",
|
||||
"renovate-07b1766",
|
||||
"renovate-169bdc2",
|
||||
"renovate-240982c",
|
||||
"renovate-4891ee7",
|
||||
"renovate-6c0fb81",
|
||||
"renovate-9d2d52e",
|
||||
"renovate-b193efa",
|
||||
"renovate-c7270d5",
|
||||
"renovate-ead3ba6",
|
||||
"renovate-f5b18be",
|
||||
"silly-numbers-wash",
|
||||
"sixty-adults-kiss",
|
||||
"sixty-houses-agree",
|
||||
"spotty-olives-share",
|
||||
"tiny-cobras-look",
|
||||
"tricky-islands-wonder",
|
||||
"twenty-beans-laugh",
|
||||
"violet-zebras-thank"
|
||||
]
|
||||
}
|
||||
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/core-compat-api': patch
|
||||
---
|
||||
|
||||
Made package public so it can be published
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/plugin-catalog': patch
|
||||
---
|
||||
|
||||
Adding in spec.type chip to search results for clarity
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/plugin-api-docs': patch
|
||||
---
|
||||
|
||||
Updated dependency `graphiql` to `3.0.10`.
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/plugin-api-docs': patch
|
||||
---
|
||||
|
||||
Updated dependency `@asyncapi/react-component` to `1.2.2`.
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/plugin-catalog-backend': patch
|
||||
---
|
||||
|
||||
Updated dependency `@types/glob` to `^8.0.0`.
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/plugin-kubernetes-backend': patch
|
||||
---
|
||||
|
||||
Updated dependency `@aws-crypto/sha256-js` to `^5.0.0`.
|
||||
@@ -0,0 +1,9 @@
|
||||
---
|
||||
'@backstage/integration': patch
|
||||
'@backstage/plugin-azure-sites-backend': patch
|
||||
'@backstage/plugin-catalog-backend-module-msgraph': patch
|
||||
'@backstage/plugin-kubernetes-backend': patch
|
||||
'@backstage/plugin-techdocs-node': patch
|
||||
---
|
||||
|
||||
Updated dependency `@azure/identity` to `^4.0.0`.
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/cli': patch
|
||||
---
|
||||
|
||||
Updated dependency `@typescript-eslint/eslint-plugin` to `6.12.0`.
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/core-components': patch
|
||||
---
|
||||
|
||||
Updated dependency `linkifyjs` to `4.1.3`.
|
||||
@@ -0,0 +1,6 @@
|
||||
---
|
||||
'@backstage/backend-common': patch
|
||||
'@backstage/plugin-techdocs-node': patch
|
||||
---
|
||||
|
||||
Updated dependency `@google-cloud/storage` to `^7.0.0`.
|
||||
@@ -0,0 +1,10 @@
|
||||
---
|
||||
'@backstage/core-components': patch
|
||||
'@backstage/plugin-entity-validation': patch
|
||||
'@backstage/plugin-gcp-projects': patch
|
||||
'@backstage/plugin-scaffolder-react': patch
|
||||
'@backstage/plugin-scaffolder': patch
|
||||
'@backstage/plugin-techdocs-module-addons-contrib': patch
|
||||
---
|
||||
|
||||
Updated dependency `@react-hookz/web` to `^23.0.0`.
|
||||
@@ -0,0 +1,6 @@
|
||||
---
|
||||
'@backstage/plugin-catalog-backend-module-gcp': patch
|
||||
'@backstage/plugin-kubernetes-backend': patch
|
||||
---
|
||||
|
||||
Updated dependency `@google-cloud/container` to `^5.0.0`.
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/plugin-auth-backend': patch
|
||||
---
|
||||
|
||||
Updated dependency `@google-cloud/firestore` to `^7.0.0`.
|
||||
@@ -0,0 +1,11 @@
|
||||
---
|
||||
'@backstage/plugin-home-react': patch
|
||||
'@backstage/plugin-home': patch
|
||||
'@backstage/plugin-scaffolder-react': patch
|
||||
'@backstage/plugin-scaffolder': patch
|
||||
---
|
||||
|
||||
Updated dependency `@rjsf/utils` to `5.14.2`.
|
||||
Updated dependency `@rjsf/core` to `5.14.2`.
|
||||
Updated dependency `@rjsf/material-ui` to `5.14.2`.
|
||||
Updated dependency `@rjsf/validator-ajv8` to `5.14.2`.
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/core-components': patch
|
||||
---
|
||||
|
||||
Update `linkify-react` to version `4.1.3`
|
||||
@@ -0,0 +1,20 @@
|
||||
---
|
||||
'@backstage/plugin-catalog': patch
|
||||
---
|
||||
|
||||
Added pagination support to `CatalogIndexPage`
|
||||
|
||||
`CatalogIndexPage` now offers an optional pagination feature, designed to accommodate adopters managing extensive catalogs. This new capability allows for better handling of large amounts of data.
|
||||
|
||||
To activate the pagination mode, simply update your `App.tsx` as follows:
|
||||
|
||||
```diff
|
||||
const routes = (
|
||||
<FlatRoutes>
|
||||
...
|
||||
- <Route path="/catalog" element={<CatalogIndexPage />} />
|
||||
+ <Route path="/catalog" element={<CatalogIndexPage pagination />} />
|
||||
...
|
||||
```
|
||||
|
||||
In case you have a custom catalog page and you want to enable pagination, you need to pass the `pagination` prop to `EntityListProvider` instead.
|
||||
@@ -0,0 +1,7 @@
|
||||
---
|
||||
'@backstage/plugin-user-settings': patch
|
||||
'@backstage/plugin-catalog': patch
|
||||
'@backstage/plugin-adr': patch
|
||||
---
|
||||
|
||||
Updated alpha translation message keys to use nested format and camel case.
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/plugin-catalog': patch
|
||||
---
|
||||
|
||||
Updated alpha plugin to include the `unregisterRedirect` external route.
|
||||
@@ -0,0 +1,7 @@
|
||||
---
|
||||
'@techdocs/cli': minor
|
||||
'@backstage/plugin-techdocs-node': minor
|
||||
'@backstage/backend-common': patch
|
||||
---
|
||||
|
||||
Add command `--runAsDefaultUser` for `@techdocs/cli generate` to bypass running the docker builds as host user for macOS and Linux.
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/plugin-techdocs-node': patch
|
||||
---
|
||||
|
||||
Bumped the default TechDocs docker image version to the latest which was released several month ago
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/frontend-app-api': patch
|
||||
---
|
||||
|
||||
Updates to provide `node` to extension factories instead of `id` and `source`.
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/cli': patch
|
||||
---
|
||||
|
||||
Switched the `@typescript-eslint/eslint-plugin` dependency back to using a `^` version range.
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/plugin-scaffolder-backend-module-sentry': patch
|
||||
---
|
||||
|
||||
Added examples for `sentry:project:create` scaffolder action and unit tests.
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@techdocs/cli': minor
|
||||
---
|
||||
|
||||
Support passing additional `mkdocs-server` CLI parameters (`--dirtyreload`, `--strict` and `--clean`) when run in containerized mode.
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/plugin-catalog': minor
|
||||
---
|
||||
|
||||
The `columns` prop can be an array or a function that returns an array in order to override the default columns of the `CatalogIndexPage`.
|
||||
@@ -0,0 +1,7 @@
|
||||
---
|
||||
'@backstage/plugin-azure-devops-backend': minor
|
||||
---
|
||||
|
||||
**BREAKING** New `fromConfig` static method must be used now when creating an instance of the `AzureDevOpsApi`
|
||||
|
||||
Added support for using the `AzureDevOpsCredentialsProvider`
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/plugin-kubernetes-common': patch
|
||||
---
|
||||
|
||||
Remove unused dependency
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/frontend-plugin-api': minor
|
||||
---
|
||||
|
||||
The extension `factory` function now longer receives `id` or `source`, but instead now provides the extension's `AppNode` as `node`. The `ExtensionBoundary` component has also been updated to receive a `node` prop rather than `id` and `source`.
|
||||
@@ -38,6 +38,14 @@ auth:
|
||||
url: https://demo.backstage.io/api/auth
|
||||
|
||||
catalog:
|
||||
rules:
|
||||
- allow:
|
||||
- Component
|
||||
- API
|
||||
- Resource
|
||||
- System
|
||||
- Domain
|
||||
- Location
|
||||
locations:
|
||||
- type: url
|
||||
target: https://github.com/backstage/backstage/blob/${REF_NAME}/packages/catalog-model/examples/all.yaml
|
||||
|
||||
@@ -66,6 +66,6 @@ jobs:
|
||||
|
||||
# Upload the results to GitHub's code scanning dashboard.
|
||||
- name: 'Upload to code-scanning'
|
||||
uses: github/codeql-action/upload-sarif@66b90a5db151a8042fa97405c6cf843bbe433f7b # v2.22.7
|
||||
uses: github/codeql-action/upload-sarif@407ffafae6a767df3e0230c3df91b6443ae8df75 # v2.22.8
|
||||
with:
|
||||
sarif_file: results.sarif
|
||||
|
||||
@@ -58,6 +58,6 @@ jobs:
|
||||
SNYK_TOKEN: ${{ secrets.SNYK_TOKEN }}
|
||||
NODE_OPTIONS: --max-old-space-size=7168
|
||||
- name: Upload Snyk report
|
||||
uses: github/codeql-action/upload-sarif@v2.22.7
|
||||
uses: github/codeql-action/upload-sarif@v2.22.8
|
||||
with:
|
||||
sarif_file: snyk.sarif
|
||||
|
||||
@@ -55,7 +55,7 @@ jobs:
|
||||
|
||||
# Initializes the CodeQL tools for scanning.
|
||||
- name: Initialize CodeQL
|
||||
uses: github/codeql-action/init@v2.22.7
|
||||
uses: github/codeql-action/init@v2.22.8
|
||||
with:
|
||||
languages: ${{ matrix.language }}
|
||||
# If you wish to specify custom queries, you can do so here or in a config file.
|
||||
@@ -66,7 +66,7 @@ jobs:
|
||||
# Autobuild attempts to build any compiled languages (C/C++, C#, or Java).
|
||||
# If this step fails, then you should remove it and run the build manually (see below)
|
||||
- name: Autobuild
|
||||
uses: github/codeql-action/autobuild@v2.22.7
|
||||
uses: github/codeql-action/autobuild@v2.22.8
|
||||
|
||||
# ℹ️ Command-line programs to run using the OS shell.
|
||||
# 📚 https://git.io/JvXDl
|
||||
@@ -80,4 +80,4 @@ jobs:
|
||||
# make release
|
||||
|
||||
- name: Perform CodeQL Analysis
|
||||
uses: github/codeql-action/analyze@v2.22.7
|
||||
uses: github/codeql-action/analyze@v2.22.8
|
||||
|
||||
@@ -51,7 +51,7 @@ jobs:
|
||||
|
||||
- run: yarn build-storybook
|
||||
|
||||
- uses: chromaui/action@820fe59a0cbddabf98b28657eb99e845b6abbe99 # v1
|
||||
- uses: chromaui/action@010142709398e03cee64f3351ed7503618093d9f # v1
|
||||
with:
|
||||
token: ${{ secrets.GITHUB_TOKEN }}
|
||||
# projectToken intentionally shared to allow collaborators to run Chromatic on forks
|
||||
|
||||
@@ -2,11 +2,9 @@
|
||||
|
||||
# [Backstage](https://backstage.io)
|
||||
|
||||
> 🏖️ From October 30th - November 5th, employees at Spotify will have a week to recharge, which means all core maintainers & some project area maintainers are out of office. Right after that, we will go into the week of BackstageCon + KubeCon in Chicago, hoping to see some of you there! Expect slower responses & reviews during the 2 weeks, but we're on it for urgent issues. We will be up to speed again on November 13th! 🏖️
|
||||
|
||||
[](https://opensource.org/licenses/Apache-2.0)
|
||||
[](https://www.cncf.io/projects)
|
||||
[](https://discord.gg/backstage-687207715902193673)
|
||||
[](https://discord.gg/backstage-687207715902193673)
|
||||

|
||||
[](https://codecov.io/gh/backstage/backstage)
|
||||
[](https://github.com/backstage/backstage/releases)
|
||||
|
||||
@@ -349,3 +349,13 @@ type LabelStyle = 'normal' | 'thin';
|
||||
// Output, since it's an exported constant
|
||||
const LABEL_SIZE: number;
|
||||
```
|
||||
|
||||
## Plugin Directory Submissions
|
||||
|
||||
When reviewing Plugin Directory submissions please consider the following:
|
||||
|
||||
- Check to make sure they have the rights for any icon being used. This is mostly for clearly copyrighted logos, for example the Microsoft Azure DevOps logo
|
||||
- Make sure the package has been published on the NPM registry.
|
||||
- Make sure the package on NPM has a link back to the code repo, this helps provide confidence that it's the right package.
|
||||
- If they use an [NPM scope](https://docs.npmjs.com/about-scopes) make sure it that matches either the Organization name or user name, this provides trust in the plugin
|
||||
- If the plugin has both a frontend and backend make sure that the documentation notes that.
|
||||
|
||||
@@ -73,30 +73,99 @@ export const kubernetesPlugin = createBackendPlugin({
|
||||
});
|
||||
```
|
||||
|
||||
Done! Users of this plugin are now able to import the `kubernetesPlugin` and register it in their backend using
|
||||
Lastly, make sure you re-export the plugin instance as the default export of your package in `src/index.ts`:
|
||||
|
||||
```ts
|
||||
export { kubernetesPlugin as default } from './plugin.ts';
|
||||
```
|
||||
|
||||
Done! Users of this plugin are now able to import your plugin package and register it in their backend using
|
||||
|
||||
```ts
|
||||
// packages/backend/src/index.ts
|
||||
import { kubernetesPlugin } from '@backstage/plugin-kubernetes-backend';
|
||||
backend.add(kubernetesPlugin);
|
||||
backend.add(import('@backstage/plugin-kubernetes-backend'));
|
||||
```
|
||||
|
||||
There's one thing missing that those sharp eyed readers might have noticed: the `clusterSupplier` option is missing from the original plugin. Let's add it and discuss the alternatives.
|
||||
|
||||
One alternative is to pass the `ClusterSupplier` in as options to the plugin, which is quick and easy but not very flexible, and also hard to evolve without introducing breaking changes as it changes the public API for the plugin. Having complex types passed in directly to the plugin also clutters the backend setup code and makes it harder to read.
|
||||
|
||||
Options are primarily used for simple configuration values that are not complex types. In this case we want to allow users to register their own `ClusterSupplier` implementations to the plugin. This is where the new backend system's [extension points](../architecture/05-extension-points.md) come in handy, but let's look at doing this with options first.
|
||||
One alternative is to make it possible to build the cluster supplier using static configuration. It could for example be that there is a selection of built-in implementations to choose from, or that the logic for how the `ClusterSupplier` is supposed to function is all determined by configuration, or a combination of the two. Using static configuration for customization is always the preferred option whenever it's possible. In this case, we could for example imagine that we would be able to configure our cluster supplier like this:
|
||||
|
||||
```ts
|
||||
/* omitted imports but they remain the same as above */
|
||||
|
||||
export interface KubernetesOptions {
|
||||
clusterSupplier?: KubernetesClustersSupplier;
|
||||
}
|
||||
|
||||
const kubernetesPlugin = createBackendPlugin((options: KubernetesOptions) => ({
|
||||
const kubernetesPlugin = createBackendPlugin({
|
||||
pluginId: 'kubernetes',
|
||||
register(env) {
|
||||
env.registerInit({
|
||||
deps: {
|
||||
/* omitted dependencies but they remain the same as above */
|
||||
},
|
||||
async init({ config, logger, catalogApi, discovery, http }) {
|
||||
// Note that in a real implementation this would be done by the `KubernetesBuilder` instead,
|
||||
// but here we've extracted it into a separate call to highlight the example.
|
||||
const configuredClusterSupplier = readClusterSupplierFromConfig(config);
|
||||
|
||||
const { router } = await KubernetesBuilder.createBuilder({
|
||||
config,
|
||||
logger,
|
||||
catalogApi,
|
||||
discovery,
|
||||
})
|
||||
.setClusterSupplier(configuredClusterSupplier)
|
||||
.build();
|
||||
http.use(router);
|
||||
},
|
||||
});
|
||||
},
|
||||
});
|
||||
```
|
||||
|
||||
There are however many types of customizations that are not possible to do with static configuration. In this case we want integrators to be able to create arbitrary implementations of the `ClusterSupplier` interface, which in the end requires an implementation through code. This is where the new backend system's [extension points](../architecture/05-extension-points.md) come in handy.
|
||||
|
||||
The new [extension points](../architecture/05-extension-points.md) API allows [modules](../architecture/06-modules.md) to add functionality into the backend plugin itself, in this case an additional `ClusterSupplier`. Let's look at how we could add support for installing custom suppliers using an extension point. This will allow integrators to build their own internal module with a custom `ClusterSupplier` implementation.
|
||||
|
||||
First we'll go ahead and create a `@backstage/plugin-kubernetes-node` package where we can define our extension point. A separate package is used to avoid direct dependencies on the plugin package itself. With the new package created, we define the extension point like this:
|
||||
|
||||
```ts
|
||||
import { createExtensionPoint } from '@backstage/backend-plugin-api';
|
||||
|
||||
export interface KubernetesClusterSupplierExtensionPoint {
|
||||
setClusterSupplier(supplier: KubernetesClustersSupplier): void;
|
||||
}
|
||||
|
||||
/**
|
||||
* An extension point that allows other plugins to set the cluster supplier.
|
||||
*/
|
||||
export const kubernetesClustersSupplierExtensionPoint =
|
||||
createExtensionPoint<KubernetesClusterSupplierExtensionPoint>({
|
||||
id: 'kubernetes.cluster-supplier',
|
||||
});
|
||||
```
|
||||
|
||||
For more information on how to design extension points, see the [extension points](../architecture/05-extension-points.md#extension-point-design) documentation.
|
||||
|
||||
Next we'll need to add support for this extension point to the Kubernetes backend plugin itself:
|
||||
|
||||
```ts
|
||||
/* omitted other imports but they remain the same as above */
|
||||
import { kubernetesClustersSupplierExtensionPoint } from '@backstage/plugin-kubernetes-node';
|
||||
|
||||
export const kubernetesPlugin = createBackendPlugin({
|
||||
pluginId: 'kubernetes',
|
||||
register(env) {
|
||||
let clusterSupplier: KubernetesClustersSupplier | undefined = undefined;
|
||||
|
||||
// We register the extension point with the backend, which allows modules to
|
||||
// register their own ClusterSupplier.
|
||||
env.registerExtensionPoint(kubernetesClustersSupplierExtensionPoint, {
|
||||
setClusterSupplier(supplier) {
|
||||
if (clusterSupplier) {
|
||||
throw new Error('ClusterSupplier may only be set once');
|
||||
}
|
||||
clusterSupplier = supplier;
|
||||
},
|
||||
});
|
||||
|
||||
env.registerInit({
|
||||
deps: {
|
||||
/* omitted dependencies but they remain the same as above */
|
||||
@@ -108,103 +177,7 @@ const kubernetesPlugin = createBackendPlugin((options: KubernetesOptions) => ({
|
||||
catalogApi,
|
||||
discovery,
|
||||
})
|
||||
.setClusterSupplier(options.clusterSupplier)
|
||||
.build();
|
||||
http.use(router);
|
||||
},
|
||||
});
|
||||
},
|
||||
}));
|
||||
```
|
||||
|
||||
The above would allow users to specify their own `ClusterSupplier` implementation to the plugin like this:
|
||||
|
||||
```ts
|
||||
backend.add(
|
||||
kubernetesPlugin({ clusterSupplier: new MyCustomClusterSupplier() }),
|
||||
);
|
||||
```
|
||||
|
||||
Just to echo what was said above, this is not a very flexible solution and will for example be problematic to keep backwards compatible if we start evolving the options to for example accept multiple suppliers or tweak the `ClusterSupplier` interface.
|
||||
|
||||
The new [extension points](../architecture/05-extension-points.md) API allows [modules](../architecture/06-modules.md) to add functionality into the backend plugin itself, in this case an additional `ClusterSupplier`.
|
||||
|
||||
The kubernetes backend plugin only supports one `ClusterSupplier` at this time but let's look at how we could add support for multiple suppliers using extension points. This allows users to install several modules that add their own `ClusterSupplier` implementations to the plugin like this:
|
||||
|
||||
```ts
|
||||
backend.add(kubernetesPlugin());
|
||||
backend.add(kubernetesGoogleContainerEngineClusterSupplier());
|
||||
backend.add(kubernetesElasticContainerEngine());
|
||||
```
|
||||
|
||||
Now let's look at how to implement this with extension points. First we need to define the extension point itself. As the extension point will be used by other modules, it's common practice to export these from a shared package so that they can be imported by other modules and plugins.
|
||||
|
||||
We'll go ahead and create a `@backstage/plugin-kubernetes-node` package for this and from there we'll export the extension point.
|
||||
|
||||
```ts
|
||||
import { createExtensionPoint } from '@backstage/backend-plugin-api';
|
||||
|
||||
export interface KubernetesClusterSupplierExtensionPoint {
|
||||
addClusterSupplier(supplier: KubernetesClustersSupplier): void;
|
||||
}
|
||||
|
||||
/**
|
||||
* An extension point that allows other plugins to add cluster suppliers.
|
||||
* @public
|
||||
*/
|
||||
export const kubernetesClustersSupplierExtensionPoint =
|
||||
createExtensionPoint<KubernetesClusterSupplierExtensionPoint>({
|
||||
id: 'kubernetes.cluster-supplier',
|
||||
});
|
||||
```
|
||||
|
||||
Now we can use this extension point in the kubernetes backend plugin to register the extension point for modules to use.
|
||||
|
||||
```ts
|
||||
import { kubernetesClustersSupplierExtensionPoint, KubernetesClusterSupplierExtensionPoint } from '@backstage/plugin-kubernetes-node';
|
||||
|
||||
// Our internal implementation of the extension point, should not be exported.
|
||||
class ClusterSupplier implements KubernetesClusterSupplierExtensionPoint {
|
||||
private clusterSuppliers: KubernetesClustersSupplier | undefined;
|
||||
|
||||
// This method is private and only used internally to retrieve the registered supplier.
|
||||
getClusterSupplier() {
|
||||
return this.clusterSuppliers;
|
||||
}
|
||||
|
||||
addClusterSupplier(supplier: KubernetesClustersSupplier) {
|
||||
// We can remove this check once the plugin support multiple suppliers.
|
||||
if(this.clusterSuppliers) {
|
||||
throw new Error('Multiple Kubernetes cluster suppliers is not supported at this time');
|
||||
}
|
||||
this.clusterSuppliers = supplier;
|
||||
}
|
||||
}
|
||||
|
||||
export const kubernetesPlugin = createBackendPlugin({
|
||||
pluginId: 'kubernetes',
|
||||
register(env) {
|
||||
const extensionPoint = new ClusterSupplier();
|
||||
// We register the extension point with the backend, which allows modules to
|
||||
// register their own ClusterSupplier.
|
||||
env.registerExtensionPoint(
|
||||
kubernetesClustersSupplierExtensionPoint,
|
||||
extensionPoint,
|
||||
);
|
||||
|
||||
env.registerInit({
|
||||
deps: {
|
||||
... omitted ...
|
||||
},
|
||||
async init({ config, logger, catalogApi, discovery, http }) {
|
||||
const { router } = await KubernetesBuilder.createBuilder({
|
||||
config,
|
||||
logger,
|
||||
catalogApi,
|
||||
discovery,
|
||||
})
|
||||
// We pass in the registered supplier from the extension point.
|
||||
.setClusterSupplier(extensionPoint.getClusterSupplier())
|
||||
.setClusterSupplier(clusterSupplier)
|
||||
.build();
|
||||
http.use(router);
|
||||
},
|
||||
@@ -213,24 +186,33 @@ export const kubernetesPlugin = createBackendPlugin({
|
||||
});
|
||||
```
|
||||
|
||||
And that's it! Modules can now be built that add clusters into to the kubernetes backend plugin, here's an example of a module that adds a `GoogleContainerEngineSupplier` to the kubernetes backend.
|
||||
And that's it! Modules can now be built that add clusters into to the kubernetes backend plugin, here's an example of a module that adds a `GoogleContainerEngineSupplier` to the kubernetes backend:
|
||||
|
||||
```ts
|
||||
import { kubernetesClustersSupplierExtensionPoint } from '@backstage/plugin-kubernetes-node';
|
||||
|
||||
export const kubernetesGoogleContainerEngineClusterSupplier =
|
||||
createBackendModule({
|
||||
pluginId: 'kubernetes',
|
||||
moduleId: 'gke.supplier',
|
||||
register(env) {
|
||||
env.registerInit({
|
||||
deps: {
|
||||
supplier: kubernetesClustersSupplierExtensionPoint,
|
||||
},
|
||||
async init({ supplier }) {
|
||||
supplier.addClusterSupplier(new GoogleContainerEngineSupplier());
|
||||
},
|
||||
});
|
||||
},
|
||||
});
|
||||
// This is a custom implementation of the ClusterSupplier interface.
|
||||
import { GoogleContainerEngineSupplier } from './GoogleContainerEngineSupplier';
|
||||
|
||||
export default createBackendModule({
|
||||
pluginId: 'kubernetes',
|
||||
moduleId: 'gke.supplier',
|
||||
register(env) {
|
||||
env.registerInit({
|
||||
deps: {
|
||||
supplier: kubernetesClustersSupplierExtensionPoint,
|
||||
},
|
||||
async init({ supplier }) {
|
||||
supplier.setClusterSupplier(new GoogleContainerEngineSupplier());
|
||||
},
|
||||
});
|
||||
},
|
||||
});
|
||||
```
|
||||
|
||||
The above module can then be installed by the integrator alongside the kubernetes backend plugin:
|
||||
|
||||
```ts
|
||||
backend.add(import('@backstage/plugin-kubernetes-backend'));
|
||||
backend.add(import('@internal/gke-cluster-supplier'));
|
||||
```
|
||||
|
||||
@@ -114,6 +114,6 @@ configured differently should be running on `/catalog-import`.
|
||||
For information about writing your own templates, you can check out the docs
|
||||
[here](./writing-templates.md)
|
||||
|
||||
If you are looking for a method to discover templates without the need for manual ingestion, there are several options available. One approach is to utilize Discovery providers, such as [GitHub Discovery](https://backstage.io/docs/integrations/github/discover).
|
||||
If you are looking for a method to discover templates without the need for manual ingestion, there are several options available. One approach is to utilize Discovery providers, such as [GitHub Discovery](https://backstage.io/docs/integrations/github/discovery).
|
||||
|
||||
Alternatively, you can choose to set up an external integration. This involves connecting your system to external sources or platforms that may host templates relevant to your needs, as mentioned in [External Integration](https://backstage.io/docs/features/software-catalog/external-integrations/).
|
||||
|
||||
@@ -91,6 +91,9 @@ Options:
|
||||
--docker-option <DOCKER_OPTION...> Extra options to pass to the docker run command, e.g. "--add-host=internal.host:192.168.11.12"
|
||||
(can be added multiple times).
|
||||
--no-docker Do not use Docker, use MkDocs executable in current user environment.
|
||||
--mkdocs-parameter-clean Pass "--clean" parameter to mkdocs server running in containerized environment.
|
||||
--mkdocs-parameter-dirtyreload Pass "--dirtyreload" parameter to mkdocs server running in containerized environment.
|
||||
--mkdocs-parameter-strict Pass "--strict" parameter to mkdocs server running in containerized environment.
|
||||
--mkdocs-port <PORT> Port for MkDocs server to use (default: "8000")
|
||||
--preview-app-bundle-path <PATH_TO_BUNDLE> Preview documentation using a web app other than the included one.
|
||||
--preview-app-port <PORT> Port where the preview will be served.
|
||||
@@ -147,6 +150,7 @@ Options:
|
||||
Defaults to false, which means that the techdocs-core plugin is always added to the mkdocs file.
|
||||
--legacyCopyReadmeMdToIndexMd Attempt to ensure an index.md exists falling back to using <docs-dir>/README.md or README.md
|
||||
in case a default <docs-dir>/index.md is not provided. (default: false)
|
||||
--runAsDefaultUser Bypass setting the container user as the same user and group id as host for Linux and MacOS (default: false)
|
||||
-v --verbose Enable verbose output. (default: false)
|
||||
-h, --help display help for command
|
||||
```
|
||||
|
||||
@@ -295,7 +295,8 @@ Webpack configuration itself varies very little between the frontend development
|
||||
and production bundling, so we'll dive more into the configuration in the
|
||||
production section below. The main differences are that `process.env.NODE_ENV`
|
||||
is set to `'development'`, minification is disabled, cheap source maps are used,
|
||||
and [React Hot Loader](https://github.com/gaearon/react-hot-loader) is enabled.
|
||||
and [React Refresh](https://github.com/pmmmwh/react-refresh-webpack-plugin#readme)
|
||||
is enabled.
|
||||
|
||||
If you prefer to run type checking and linting as part of the Webpack process,
|
||||
you can enable usage of the
|
||||
@@ -589,22 +590,25 @@ For your productivity working with unit tests it's quite essential to have your
|
||||
|
||||
A complete launch configuration for VS Code debugging may look like this:
|
||||
|
||||
```json
|
||||
```jsonc
|
||||
{
|
||||
"type": "node",
|
||||
"name": "vscode-jest-tests",
|
||||
"name": "vscode-jest-tests.v2",
|
||||
"request": "launch",
|
||||
"args": [
|
||||
"repo",
|
||||
"test",
|
||||
"--runInBand",
|
||||
"--watchAll=false",
|
||||
"--testNamePattern",
|
||||
"${jest.testNamePattern}",
|
||||
"--runTestsByPath",
|
||||
"${jest.testFile}"
|
||||
],
|
||||
"console": "integratedTerminal",
|
||||
"internalConsoleOptions": "neverOpen",
|
||||
"disableOptimisticBPs": true,
|
||||
"program": "${workspaceFolder}/node_modules/.bin/jest",
|
||||
"cwd": "${workspaceFolder}",
|
||||
"args": [
|
||||
"--config",
|
||||
"node_modules/@backstage/cli/config/jest.js",
|
||||
"--runInBand",
|
||||
"--watchAll=false"
|
||||
]
|
||||
"program": "${workspaceFolder}/node_modules/.bin/backstage-cli"
|
||||
}
|
||||
```
|
||||
|
||||
|
||||
@@ -47,3 +47,27 @@ The resulting log should now have more information available for debugging:
|
||||
[1] 2023-04-12T00:51:44.118Z search info Collating documents for tools succeeded type=plugin documentType=tools
|
||||
[1] 2023-04-12T00:51:44.119Z backstage debug task: search_index_tools will next occur around 2023-04-11T21:01:44.118-04:00 type=taskManager task=search_index_tools
|
||||
```
|
||||
|
||||
## Debugger
|
||||
|
||||
### VSCode
|
||||
|
||||
In your `launch.json`, add a new entry with the following,
|
||||
|
||||
```jsonc
|
||||
{
|
||||
"name": "Start Backend",
|
||||
"type": "node",
|
||||
"request": "launch",
|
||||
"args": [
|
||||
"package",
|
||||
"start"
|
||||
],
|
||||
"cwd": "${workspaceFolder}/packages/backend",
|
||||
"program": "${workspaceFolder}/node_modules/.bin/backstage-cli",
|
||||
"skipFiles": [
|
||||
"<node_internals>/**"
|
||||
],
|
||||
"console": "integratedTerminal"
|
||||
},
|
||||
```
|
||||
|
||||
@@ -21,7 +21,18 @@ description: A brief description of the plugin. # Max 170 characters
|
||||
documentation: # A link to your documentation E.g. Your github README
|
||||
iconUrl: # Used as the src attribute for your logo.
|
||||
# You can provide an external url or add your logo under static/img and provide a path
|
||||
# relative to static/ e.g. img/my-logo.png
|
||||
# relative to static/ e.g. /img/my-logo.png
|
||||
npmPackageName: # Your npm package name E.g. '@backstage/plugin-<etc>' quotes are required
|
||||
addedDate: # The date plugin added to directory E.g. '2022-10-01' quotes are required
|
||||
```
|
||||
|
||||
## Submission Tips
|
||||
|
||||
Here are a few tips to help speed up the review process when you submit your plugin:
|
||||
|
||||
- For any icon that you use make sure you have the proper rights to use it.
|
||||
- Make sure that your package had been published on the NPM registry and that it's public.
|
||||
- Make sure your package on NPM has a link back to your code repo, this helps provide confidence that it's the right package.
|
||||
- Where possible, please use an [NPM scope](https://docs.npmjs.com/about-scopes) that matches either your Organization name or user name, this provides trust in the plugin
|
||||
- If your plugin has both a frontend and backend link the documentation to the frontend package but make sure it mentioned needing to install the backend package.
|
||||
- Where possible include a screenshot of the features in you plugin documentation, it really does help when deciding to use a plugin.
|
||||
|
||||
@@ -10,7 +10,7 @@ The Backstage core function provides internationalization for plugins
|
||||
|
||||
## For a plugin developer
|
||||
|
||||
When you are creating your plugin, you have the possibility to use `createTranslationRef` to define all messages for your plugin. For example
|
||||
When you are creating your plugin, you have the possibility to use `createTranslationRef` to define all messages for your plugin. For example:
|
||||
|
||||
```ts
|
||||
import { createTranslationRef } from '@backstage/core-plugin-api/alpha';
|
||||
@@ -19,8 +19,13 @@ import { createTranslationRef } from '@backstage/core-plugin-api/alpha';
|
||||
export const myPluginTranslationRef = createTranslationRef({
|
||||
id: 'plugin.my-plugin',
|
||||
messages: {
|
||||
index_page_title: 'All your components',
|
||||
create_component_button_label: 'Create new component',
|
||||
indexPage: {
|
||||
title: 'All your components',
|
||||
createButtonTitle: 'Create new component',
|
||||
},
|
||||
entityPage: {
|
||||
notFound: 'Entity not found',
|
||||
},
|
||||
},
|
||||
});
|
||||
```
|
||||
@@ -33,9 +38,9 @@ import { useTranslationRef } from '@backstage/core-plugin-api/alpha';
|
||||
const { t } = useTranslationRef(myPluginTranslationRef);
|
||||
|
||||
return (
|
||||
<PageHeader title={t('index_page_title')}>
|
||||
<PageHeader title={t('indexPage.title')}>
|
||||
<Button onClick={handleCreateComponent}>
|
||||
{t('create_component_button_label')}
|
||||
{t('indexPage.createButtonTitle')}
|
||||
</Button>
|
||||
</PageHeader>
|
||||
);
|
||||
@@ -53,7 +58,7 @@ In an app you can both override the default messages, as well as register transl
|
||||
+ createTranslationMessages({
|
||||
+ ref: myPluginTranslationRef,
|
||||
+ messages: {
|
||||
+ create_component_button_label: 'Create new entity',
|
||||
+ 'indexPage.createButtonTitle': 'Create new entity',
|
||||
+ },
|
||||
+ }),
|
||||
+ createTranslationResource({
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,140 @@
|
||||
# Release v1.21.0-next.1
|
||||
|
||||
## @backstage/core-compat-api@0.0.1-next.0
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- c219b168aa: Made package public so it can be published
|
||||
|
||||
## @backstage/create-app@0.5.8-next.1
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Bumped create-app version.
|
||||
|
||||
## @backstage/plugin-api-docs@0.10.2-next.1
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies
|
||||
- @backstage/plugin-catalog@1.16.0-next.1
|
||||
|
||||
## @backstage/plugin-bazaar@0.2.20-next.1
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies
|
||||
- @backstage/plugin-catalog@1.16.0-next.1
|
||||
|
||||
## @backstage/plugin-catalog@1.16.0-next.1
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies
|
||||
- @backstage/core-compat-api@0.0.1-next.0
|
||||
|
||||
## @backstage/plugin-catalog-import@0.10.4-next.1
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies
|
||||
- @backstage/core-compat-api@0.0.1-next.0
|
||||
|
||||
## @backstage/plugin-graphiql@0.3.1-next.1
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies
|
||||
- @backstage/core-compat-api@0.0.1-next.0
|
||||
|
||||
## @backstage/plugin-search@1.4.4-next.1
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies
|
||||
- @backstage/core-compat-api@0.0.1-next.0
|
||||
|
||||
## @backstage/plugin-tech-radar@0.6.11-next.1
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies
|
||||
- @backstage/core-compat-api@0.0.1-next.0
|
||||
|
||||
## @backstage/plugin-techdocs@1.9.2-next.1
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies
|
||||
- @backstage/core-compat-api@0.0.1-next.0
|
||||
|
||||
## @backstage/plugin-techdocs-addons-test-utils@1.0.25-next.1
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies
|
||||
- @backstage/plugin-catalog@1.16.0-next.1
|
||||
- @backstage/plugin-techdocs@1.9.2-next.1
|
||||
|
||||
## @backstage/plugin-user-settings@0.7.14-next.1
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies
|
||||
- @backstage/core-compat-api@0.0.1-next.0
|
||||
|
||||
## example-app@0.2.90-next.1
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies
|
||||
- @backstage/plugin-catalog@1.16.0-next.1
|
||||
- @backstage/plugin-catalog-import@0.10.4-next.1
|
||||
- @backstage/plugin-graphiql@0.3.1-next.1
|
||||
- @backstage/plugin-search@1.4.4-next.1
|
||||
- @backstage/plugin-tech-radar@0.6.11-next.1
|
||||
- @backstage/plugin-techdocs@1.9.2-next.1
|
||||
- @backstage/plugin-user-settings@0.7.14-next.1
|
||||
- @backstage/plugin-api-docs@0.10.2-next.1
|
||||
- @backstage/plugin-catalog-graph@0.3.2-next.0
|
||||
- @backstage/plugin-explore@0.4.14-next.0
|
||||
- @backstage/plugin-org@0.6.18-next.0
|
||||
- @backstage/plugin-scaffolder@1.16.2-next.0
|
||||
- @backstage/plugin-scaffolder-react@1.6.2-next.0
|
||||
- @backstage/plugin-techdocs-module-addons-contrib@1.1.3-next.0
|
||||
|
||||
## example-app-next@0.0.4-next.1
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies
|
||||
- @backstage/core-compat-api@0.0.1-next.0
|
||||
- @backstage/plugin-catalog@1.16.0-next.1
|
||||
- @backstage/plugin-catalog-import@0.10.4-next.1
|
||||
- @backstage/plugin-graphiql@0.3.1-next.1
|
||||
- @backstage/plugin-search@1.4.4-next.1
|
||||
- @backstage/plugin-tech-radar@0.6.11-next.1
|
||||
- @backstage/plugin-techdocs@1.9.2-next.1
|
||||
- @backstage/plugin-user-settings@0.7.14-next.1
|
||||
- @backstage/plugin-api-docs@0.10.2-next.1
|
||||
- @backstage/plugin-catalog-graph@0.3.2-next.0
|
||||
- @backstage/plugin-explore@0.4.14-next.0
|
||||
- @backstage/plugin-org@0.6.18-next.0
|
||||
- @backstage/plugin-scaffolder@1.16.2-next.0
|
||||
- @backstage/plugin-scaffolder-react@1.6.2-next.0
|
||||
- @backstage/plugin-techdocs-module-addons-contrib@1.1.3-next.0
|
||||
|
||||
## e2e-test@0.2.10-next.1
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies
|
||||
- @backstage/create-app@0.5.8-next.1
|
||||
|
||||
## techdocs-cli-embedded-app@0.2.89-next.1
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies
|
||||
- @backstage/plugin-catalog@1.16.0-next.1
|
||||
- @backstage/plugin-techdocs@1.9.2-next.1
|
||||
@@ -0,0 +1,10 @@
|
||||
---
|
||||
title: Festive Fun
|
||||
author: benjmac
|
||||
authorUrl: https://github.com/benjmac
|
||||
category: Humor
|
||||
description: Festive, seasonal, animations to spice up your instance of Backstage!
|
||||
documentation: https://github.com/benjmac/backstage-plugin-festive-fun/
|
||||
iconUrl: https://raw.githubusercontent.com/benjmac/backstage-plugin-festive-fun/main/docs/festive-fun-logo.png
|
||||
npmPackageName: 'backstage-plugin-festive-fun'
|
||||
addedDate: '2023-11-20'
|
||||
@@ -0,0 +1,10 @@
|
||||
---
|
||||
title: HCP Consul
|
||||
author: Hashicorp
|
||||
authorUrl: https://www.hashicorp.com/
|
||||
category: Infrastructure
|
||||
description: View your HCP Consul clusters, services, instances in Backstage.
|
||||
documentation: https://github.com/hashicorp-forge/backstage-plugin-hcp-consul/tree/main
|
||||
iconUrl: /img/hcp-consul.svg
|
||||
npmPackageName: '@hashicorp/plugin-hcp-consul'
|
||||
addedDate: '2023-11-24'
|
||||
@@ -0,0 +1,12 @@
|
||||
---
|
||||
title: Highlights
|
||||
author: RSC Labs
|
||||
authorUrl: https://rsoftcon.com/
|
||||
category: Discovery
|
||||
description: Highlight what is important for you and put it on front for the quick view and access. Built-in support of Git information from GitHub and GitLab.
|
||||
documentation: https://github.com/RSC-Labs/backstage-highlights-plugin/blob/main/README.md
|
||||
iconUrl: https://raw.githubusercontent.com/RSC-Labs/backstage-highlights-plugin/main/docs/highlighter.png
|
||||
npmPackageName: '@rsc-labs/backstage-highlights-plugin'
|
||||
tags:
|
||||
- highlights
|
||||
addedDate: '2023-11-20'
|
||||
@@ -5,6 +5,6 @@ authorUrl: https://github.com/arhill05
|
||||
category: Scaffolder
|
||||
description: Interact with Slack from scaffolder templates
|
||||
documentation: https://github.com/arhill05/backstage-plugin-scaffolder-backend-module-slack#readme
|
||||
iconUrl: img/Slack-mark-RGB.png
|
||||
iconUrl: /img/Slack-mark-RGB.png
|
||||
npmPackageName: '@mdude2314/backstage-plugin-scaffolder-backend-module-slack'
|
||||
addedDate: '2023-08-04'
|
||||
|
||||
@@ -5,6 +5,6 @@ authorUrl: https://github.com/arhill05
|
||||
category: Search
|
||||
description: Index wiki articles from an Azure DevOps wiki into Backstage to allow you to search them with the Backstage Search feature.
|
||||
documentation: https://github.com/arhill05/backstage-plugin-search-backend-module-azure-devops-wiki#readme
|
||||
iconUrl: img/ado-wiki-search-icon.png
|
||||
iconUrl: /img/ado-wiki-search-icon.png
|
||||
npmPackageName: '@mdude2314/backstage-plugin-search-backend-module-azure-devops-wiki'
|
||||
addedDate: '2023-06-13'
|
||||
|
||||
@@ -140,6 +140,10 @@ module.exports = {
|
||||
from: '/docs/getting-started/running-backstage-locally',
|
||||
to: '/docs/getting-started/',
|
||||
},
|
||||
{
|
||||
from: '/docs/features/software-templates/testing-scaffolder-alpha',
|
||||
to: '/docs/features/software-templates/migrating-to-rjsf-v5',
|
||||
},
|
||||
],
|
||||
},
|
||||
],
|
||||
|
||||
@@ -0,0 +1,17 @@
|
||||
<svg width="241" height="88" viewBox="0 0 241 88" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<title>Consul Logo</title>
|
||||
<path d="M87.4688 34.7503C87.4688 27.3703 91.7687 23.0703 101.809 23.0703C105.516 23.0688 109.209 23.5154 112.809 24.4003L111.959 31.0003C108.706 30.391 105.408 30.0565 102.099 30.0003C96.8288 30.0003 95.0987 31.8103 95.0987 36.1103V51.5703C95.0987 55.8603 96.7888 57.6803 102.099 57.6803C105.408 57.6241 108.706 57.2896 111.959 56.6803L112.809 63.2803C109.209 64.1652 105.516 64.6118 101.809 64.6103C91.8087 64.6103 87.4688 60.3103 87.4688 52.9303V34.7503Z" fill="white"/>
|
||||
<path d="M129.097 64.5804C118.987 64.5804 116.277 59.0004 116.277 53.0004V45.5204C116.277 39.5204 118.997 33.9004 129.107 33.9004C139.217 33.9004 141.927 39.4704 141.927 45.5204V53.0004C141.917 59.0004 139.197 64.5804 129.097 64.5804ZM129.097 40.1904C125.157 40.1904 123.647 41.9504 123.647 45.2804V53.2004C123.647 56.5304 125.157 58.2804 129.097 58.2804C133.037 58.2804 134.537 56.5304 134.537 53.2004V45.2804C134.537 42.0004 133.027 40.1904 129.097 40.1904Z" fill="white"/>
|
||||
<path d="M164.367 64.0002V43.4002C164.367 41.8302 163.697 41.0402 162.007 41.0402C160.317 41.0402 157.007 42.1302 154.317 43.5202V64.0002H146.938V34.5102H152.567L153.277 37.0002C156.953 35.1591 160.972 34.1065 165.077 33.9102C169.977 33.9102 171.738 37.3602 171.738 42.6202V64.0002H164.367Z" fill="white"/>
|
||||
<path d="M186.928 64.5803C183.475 64.5229 180.051 63.9499 176.768 62.8803L177.768 57.2603C180.621 58.0738 183.571 58.501 186.538 58.5303C189.808 58.5303 190.288 57.8003 190.288 55.5303C190.288 53.7203 189.928 52.8103 185.148 51.6603C177.948 49.9103 177.098 48.0903 177.098 42.4003C177.098 36.4703 179.698 33.8703 188.098 33.8703C191.07 33.8618 194.033 34.1973 196.928 34.8703L196.278 40.8003C193.6 40.3066 190.889 40.0224 188.168 39.9503C184.958 39.9503 184.418 40.6803 184.418 42.4903C184.418 44.8503 184.598 45.0303 188.598 46.0603C196.818 48.2403 197.598 49.3303 197.598 55.3803C197.578 61.0703 195.828 64.5803 186.928 64.5803Z" fill="white"/>
|
||||
<path d="M209.798 34.5098V55.0798C209.798 56.6498 210.458 57.4398 212.158 57.4398C213.858 57.4398 217.158 56.3498 219.838 54.9598V34.5098H227.218V63.9998H221.598L220.868 61.5198C217.193 63.3623 213.174 64.4148 209.068 64.6098C204.168 64.6098 202.418 61.1598 202.418 55.8898V34.5098H209.798Z" fill="white"/>
|
||||
<path d="M233.566 64.0007V22.4707L240.946 21.4707V64.0007H233.566Z" fill="white"/>
|
||||
<path d="M31.7776 75.5903C26.609 75.5932 21.5178 74.3346 16.9459 71.9237C12.374 69.5129 8.45959 66.0227 5.54237 61.7561C2.62514 57.4894 0.793299 52.5753 0.205828 47.4402C-0.381643 42.3051 0.293013 37.1042 2.17124 32.289C4.04947 27.4737 7.0745 23.1896 10.9838 19.8085C14.8931 16.4274 19.5685 14.0515 24.6042 12.887C29.6399 11.7224 34.8837 11.8045 39.8805 13.126C44.8773 14.4475 49.476 16.9686 53.2776 20.4703L45.7676 28.3503C42.7702 25.6478 39.0535 23.8723 35.0676 23.2389C31.0818 22.6055 26.9977 23.1415 23.3102 24.7817C19.6227 26.422 16.4899 29.0963 14.2913 32.4807C12.0926 35.8651 10.9224 39.8144 10.9224 43.8503C10.9224 47.8862 12.0926 51.8355 14.2913 55.2199C16.4899 58.6043 19.6227 61.2786 23.3102 62.9189C26.9977 64.5592 31.0818 65.0951 35.0676 64.4617C39.0535 63.8283 42.7702 62.0529 45.7676 59.3503L53.2776 67.2003C47.4219 72.6025 39.7447 75.5984 31.7776 75.5903Z" fill="#E03875"/>
|
||||
<path d="M57.3383 59.7C56.824 59.7 56.3214 59.5475 55.8938 59.2618C55.4662 58.9761 55.133 58.5701 54.9362 58.095C54.7394 57.6199 54.6879 57.0971 54.7882 56.5928C54.8886 56.0884 55.1362 55.6251 55.4998 55.2615C55.8634 54.8979 56.3267 54.6503 56.831 54.55C57.3354 54.4496 57.8582 54.5011 58.3333 54.6979C58.8083 54.8947 59.2144 55.228 59.5001 55.6555C59.7858 56.0831 59.9383 56.5858 59.9383 57.1C59.9383 57.7896 59.6644 58.4509 59.1768 58.9385C58.6892 59.4261 58.0278 59.7 57.3383 59.7Z" fill="#E03875"/>
|
||||
<path d="M31.5773 50.7112C30.2165 50.7112 28.8864 50.3077 27.7549 49.5517C26.6235 48.7957 25.7417 47.7212 25.221 46.464C24.7002 45.2069 24.564 43.8235 24.8295 42.489C25.0949 41.1544 25.7502 39.9285 26.7124 38.9663C27.6746 38.0041 28.9005 37.3488 30.235 37.0834C31.5696 36.8179 32.953 36.9542 34.2101 37.4749C35.4673 37.9956 36.5418 38.8774 37.2978 40.0088C38.0538 41.1403 38.4573 42.4704 38.4573 43.8312C38.4573 45.6559 37.7324 47.4058 36.4422 48.6961C35.1519 49.9863 33.402 50.7112 31.5773 50.7112Z" fill="#E03875"/>
|
||||
<path d="M60.3266 50.8104C59.8123 50.8104 59.3096 50.6579 58.8821 50.3722C58.4545 50.0865 58.1213 49.6804 57.9245 49.2053C57.7277 48.7302 57.6762 48.2075 57.7765 47.7031C57.8768 47.1988 58.1245 46.7355 58.4881 46.3719C58.8517 46.0083 59.315 45.7606 59.8193 45.6603C60.3237 45.56 60.8464 45.6115 61.3215 45.8083C61.7966 46.0051 62.2027 46.3383 62.4884 46.7659C62.7741 47.1934 62.9266 47.6961 62.9266 48.2104C62.9239 48.8991 62.6492 49.5589 62.1621 50.0459C61.6751 50.5329 61.0153 50.8077 60.3266 50.8104Z" fill="#E03875"/>
|
||||
<path d="M52.5883 50.5106C52.074 50.5106 51.5714 50.3581 51.1438 50.0724C50.7162 49.7867 50.383 49.3806 50.1862 48.9055C49.9894 48.4304 49.9379 47.9077 50.0382 47.4033C50.1386 46.899 50.3862 46.4357 50.7498 46.0721C51.1134 45.7085 51.5767 45.4608 52.081 45.3605C52.5854 45.2602 53.1082 45.3117 53.5833 45.5085C54.0583 45.7053 54.4644 46.0385 54.7501 46.4661C55.0358 46.8936 55.1883 47.3963 55.1883 47.9106C55.1883 48.6001 54.9144 49.2614 54.4268 49.749C53.9392 50.2366 53.2778 50.5106 52.5883 50.5106Z" fill="#E03875"/>
|
||||
<path d="M60.3266 42.0604C59.8123 42.0604 59.3096 41.9079 58.8821 41.6222C58.4545 41.3365 58.1213 40.9304 57.9245 40.4553C57.7277 39.9802 57.6762 39.4575 57.7765 38.9531C57.8768 38.4488 58.1245 37.9855 58.4881 37.6219C58.8517 37.2583 59.315 37.0106 59.8193 36.9103C60.3237 36.81 60.8464 36.8615 61.3215 37.0583C61.7966 37.2551 62.2027 37.5883 62.4884 38.0159C62.7741 38.4434 62.9266 38.9461 62.9266 39.4604C62.9239 40.1491 62.6492 40.8089 62.1621 41.2959C61.6751 41.7829 61.0153 42.0577 60.3266 42.0604Z" fill="#E03875"/>
|
||||
<path d="M52.5883 42.3602C52.074 42.3602 51.5714 42.2077 51.1438 41.922C50.7162 41.6363 50.383 41.2302 50.1862 40.7551C49.9894 40.28 49.9379 39.7573 50.0382 39.2529C50.1386 38.7486 50.3862 38.2853 50.7498 37.9217C51.1134 37.5581 51.5767 37.3104 52.081 37.2101C52.5854 37.1098 53.1082 37.1613 53.5833 37.3581C54.0583 37.5549 54.4644 37.8881 54.7501 38.3157C55.0358 38.7432 55.1883 39.2459 55.1883 39.7602C55.1883 40.4497 54.9144 41.111 54.4268 41.5986C53.9392 42.0862 53.2778 42.3602 52.5883 42.3602Z" fill="#E03875"/>
|
||||
<path d="M57.4867 33.3104C56.9725 33.3104 56.4698 33.1579 56.0422 32.8722C55.6147 32.5865 55.2814 32.1804 55.0846 31.7053C54.8878 31.2302 54.8364 30.7075 54.9367 30.2031C55.037 29.6988 55.2846 29.2355 55.6482 28.8719C56.0119 28.5083 56.4751 28.2606 56.9795 28.1603C57.4838 28.06 58.0066 28.1115 58.4817 28.3083C58.9568 28.5051 59.3628 28.8383 59.6485 29.2659C59.9342 29.6934 60.0867 30.1961 60.0867 30.7104C60.0867 31.3999 59.8128 32.0612 59.3252 32.5488C58.8376 33.0364 58.1763 33.3104 57.4867 33.3104Z" fill="#E03875"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 6.8 KiB |
+42
-52
@@ -2701,90 +2701,82 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@swc/core-darwin-arm64@npm:1.3.96":
|
||||
version: 1.3.96
|
||||
resolution: "@swc/core-darwin-arm64@npm:1.3.96"
|
||||
"@swc/core-darwin-arm64@npm:1.3.99":
|
||||
version: 1.3.99
|
||||
resolution: "@swc/core-darwin-arm64@npm:1.3.99"
|
||||
conditions: os=darwin & cpu=arm64
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@swc/core-darwin-x64@npm:1.3.96":
|
||||
version: 1.3.96
|
||||
resolution: "@swc/core-darwin-x64@npm:1.3.96"
|
||||
"@swc/core-darwin-x64@npm:1.3.99":
|
||||
version: 1.3.99
|
||||
resolution: "@swc/core-darwin-x64@npm:1.3.99"
|
||||
conditions: os=darwin & cpu=x64
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@swc/core-linux-arm-gnueabihf@npm:1.3.96":
|
||||
version: 1.3.96
|
||||
resolution: "@swc/core-linux-arm-gnueabihf@npm:1.3.96"
|
||||
conditions: os=linux & cpu=arm
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@swc/core-linux-arm64-gnu@npm:1.3.96":
|
||||
version: 1.3.96
|
||||
resolution: "@swc/core-linux-arm64-gnu@npm:1.3.96"
|
||||
"@swc/core-linux-arm64-gnu@npm:1.3.99":
|
||||
version: 1.3.99
|
||||
resolution: "@swc/core-linux-arm64-gnu@npm:1.3.99"
|
||||
conditions: os=linux & cpu=arm64 & libc=glibc
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@swc/core-linux-arm64-musl@npm:1.3.96":
|
||||
version: 1.3.96
|
||||
resolution: "@swc/core-linux-arm64-musl@npm:1.3.96"
|
||||
"@swc/core-linux-arm64-musl@npm:1.3.99":
|
||||
version: 1.3.99
|
||||
resolution: "@swc/core-linux-arm64-musl@npm:1.3.99"
|
||||
conditions: os=linux & cpu=arm64 & libc=musl
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@swc/core-linux-x64-gnu@npm:1.3.96":
|
||||
version: 1.3.96
|
||||
resolution: "@swc/core-linux-x64-gnu@npm:1.3.96"
|
||||
"@swc/core-linux-x64-gnu@npm:1.3.99":
|
||||
version: 1.3.99
|
||||
resolution: "@swc/core-linux-x64-gnu@npm:1.3.99"
|
||||
conditions: os=linux & cpu=x64 & libc=glibc
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@swc/core-linux-x64-musl@npm:1.3.96":
|
||||
version: 1.3.96
|
||||
resolution: "@swc/core-linux-x64-musl@npm:1.3.96"
|
||||
"@swc/core-linux-x64-musl@npm:1.3.99":
|
||||
version: 1.3.99
|
||||
resolution: "@swc/core-linux-x64-musl@npm:1.3.99"
|
||||
conditions: os=linux & cpu=x64 & libc=musl
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@swc/core-win32-arm64-msvc@npm:1.3.96":
|
||||
version: 1.3.96
|
||||
resolution: "@swc/core-win32-arm64-msvc@npm:1.3.96"
|
||||
"@swc/core-win32-arm64-msvc@npm:1.3.99":
|
||||
version: 1.3.99
|
||||
resolution: "@swc/core-win32-arm64-msvc@npm:1.3.99"
|
||||
conditions: os=win32 & cpu=arm64
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@swc/core-win32-ia32-msvc@npm:1.3.96":
|
||||
version: 1.3.96
|
||||
resolution: "@swc/core-win32-ia32-msvc@npm:1.3.96"
|
||||
"@swc/core-win32-ia32-msvc@npm:1.3.99":
|
||||
version: 1.3.99
|
||||
resolution: "@swc/core-win32-ia32-msvc@npm:1.3.99"
|
||||
conditions: os=win32 & cpu=ia32
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@swc/core-win32-x64-msvc@npm:1.3.96":
|
||||
version: 1.3.96
|
||||
resolution: "@swc/core-win32-x64-msvc@npm:1.3.96"
|
||||
"@swc/core-win32-x64-msvc@npm:1.3.99":
|
||||
version: 1.3.99
|
||||
resolution: "@swc/core-win32-x64-msvc@npm:1.3.99"
|
||||
conditions: os=win32 & cpu=x64
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@swc/core@npm:^1.3.46":
|
||||
version: 1.3.96
|
||||
resolution: "@swc/core@npm:1.3.96"
|
||||
version: 1.3.99
|
||||
resolution: "@swc/core@npm:1.3.99"
|
||||
dependencies:
|
||||
"@swc/core-darwin-arm64": 1.3.96
|
||||
"@swc/core-darwin-x64": 1.3.96
|
||||
"@swc/core-linux-arm-gnueabihf": 1.3.96
|
||||
"@swc/core-linux-arm64-gnu": 1.3.96
|
||||
"@swc/core-linux-arm64-musl": 1.3.96
|
||||
"@swc/core-linux-x64-gnu": 1.3.96
|
||||
"@swc/core-linux-x64-musl": 1.3.96
|
||||
"@swc/core-win32-arm64-msvc": 1.3.96
|
||||
"@swc/core-win32-ia32-msvc": 1.3.96
|
||||
"@swc/core-win32-x64-msvc": 1.3.96
|
||||
"@swc/core-darwin-arm64": 1.3.99
|
||||
"@swc/core-darwin-x64": 1.3.99
|
||||
"@swc/core-linux-arm64-gnu": 1.3.99
|
||||
"@swc/core-linux-arm64-musl": 1.3.99
|
||||
"@swc/core-linux-x64-gnu": 1.3.99
|
||||
"@swc/core-linux-x64-musl": 1.3.99
|
||||
"@swc/core-win32-arm64-msvc": 1.3.99
|
||||
"@swc/core-win32-ia32-msvc": 1.3.99
|
||||
"@swc/core-win32-x64-msvc": 1.3.99
|
||||
"@swc/counter": ^0.1.1
|
||||
"@swc/types": ^0.1.5
|
||||
peerDependencies:
|
||||
@@ -2794,8 +2786,6 @@ __metadata:
|
||||
optional: true
|
||||
"@swc/core-darwin-x64":
|
||||
optional: true
|
||||
"@swc/core-linux-arm-gnueabihf":
|
||||
optional: true
|
||||
"@swc/core-linux-arm64-gnu":
|
||||
optional: true
|
||||
"@swc/core-linux-arm64-musl":
|
||||
@@ -2813,7 +2803,7 @@ __metadata:
|
||||
peerDependenciesMeta:
|
||||
"@swc/helpers":
|
||||
optional: true
|
||||
checksum: 41d4a4461b2952aaf8d3be945d373d0f3bd126115ee1aad0f76f2690e2b5635b6ec5bb54a7638deb9afedb1ad6f7d8453468a704e54e5fbb8234dd4a43b80205
|
||||
checksum: a4d51e650913045fe3100195b053dafb55dc06fcadd4a9381712c64f09a75d548596bb1a96e8ed84ba0199f701e821a381a25db82c1016cdd731e0077a83192e
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
@@ -3055,9 +3045,9 @@ __metadata:
|
||||
linkType: hard
|
||||
|
||||
"@types/luxon@npm:^3.0.0":
|
||||
version: 3.3.4
|
||||
resolution: "@types/luxon@npm:3.3.4"
|
||||
checksum: aa4862bd62d748e7966f9a0ec76058e9d74397ee426c7d64f61c677d83de0303c303cc78515001833df3f4ad16c95f572b0e2ffaee6e55bc50b80857e8437f3a
|
||||
version: 3.3.5
|
||||
resolution: "@types/luxon@npm:3.3.5"
|
||||
checksum: 7fd31c673600dd494dedefe8c405d2e6957c0ba101f8445f7eaf9afcf4a1fa1ca649cab01c9777523ff9de58c3c35e2589a1a004a0c629cd7953033115ac74f5
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
|
||||
+1
-1
@@ -54,7 +54,7 @@
|
||||
"@material-ui/pickers@^3.3.10": "patch:@material-ui/pickers@npm%3A3.3.11#./.yarn/patches/@material-ui-pickers-npm-3.3.11-1c8f68ea20.patch",
|
||||
"@material-ui/pickers@^3.2.10": "patch:@material-ui/pickers@npm%3A3.3.11#./.yarn/patches/@material-ui-pickers-npm-3.3.11-1c8f68ea20.patch"
|
||||
},
|
||||
"version": "1.20.0",
|
||||
"version": "1.21.0-next.1",
|
||||
"dependencies": {
|
||||
"@backstage/errors": "workspace:^",
|
||||
"@manypkg/get-packages": "^1.1.3",
|
||||
|
||||
@@ -1,5 +1,16 @@
|
||||
# @backstage/app-defaults
|
||||
|
||||
## 1.4.6-next.0
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies
|
||||
- @backstage/core-plugin-api@1.8.1-next.0
|
||||
- @backstage/core-components@0.13.9-next.0
|
||||
- @backstage/theme@0.5.0-next.0
|
||||
- @backstage/core-app-api@1.11.2-next.0
|
||||
- @backstage/plugin-permission-react@0.4.18-next.0
|
||||
|
||||
## 1.4.5
|
||||
|
||||
### Patch Changes
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "@backstage/app-defaults",
|
||||
"description": "Provides the default wiring of a Backstage App",
|
||||
"version": "1.4.5",
|
||||
"version": "1.4.6-next.0",
|
||||
"publishConfig": {
|
||||
"access": "public",
|
||||
"main": "dist/index.esm.js",
|
||||
|
||||
@@ -1,5 +1,13 @@
|
||||
# app-next-example-plugin
|
||||
|
||||
## 0.0.4-next.0
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies
|
||||
- @backstage/core-components@0.13.9-next.0
|
||||
- @backstage/frontend-plugin-api@0.3.1-next.0
|
||||
|
||||
## 0.0.3
|
||||
|
||||
### Patch Changes
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "app-next-example-plugin",
|
||||
"description": "Backstage internal example plugin",
|
||||
"version": "0.0.3",
|
||||
"version": "0.0.4-next.0",
|
||||
"publishConfig": {
|
||||
"access": "public",
|
||||
"main": "dist/index.esm.js",
|
||||
|
||||
@@ -1,5 +1,103 @@
|
||||
# example-app-next
|
||||
|
||||
## 0.0.4-next.1
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies
|
||||
- @backstage/core-compat-api@0.0.1-next.0
|
||||
- @backstage/plugin-catalog@1.16.0-next.1
|
||||
- @backstage/plugin-catalog-import@0.10.4-next.1
|
||||
- @backstage/plugin-graphiql@0.3.1-next.1
|
||||
- @backstage/plugin-search@1.4.4-next.1
|
||||
- @backstage/plugin-tech-radar@0.6.11-next.1
|
||||
- @backstage/plugin-techdocs@1.9.2-next.1
|
||||
- @backstage/plugin-user-settings@0.7.14-next.1
|
||||
- @backstage/plugin-api-docs@0.10.2-next.1
|
||||
- @backstage/plugin-catalog-graph@0.3.2-next.0
|
||||
- @backstage/plugin-explore@0.4.14-next.0
|
||||
- @backstage/plugin-org@0.6.18-next.0
|
||||
- @backstage/plugin-scaffolder@1.16.2-next.0
|
||||
- @backstage/plugin-scaffolder-react@1.6.2-next.0
|
||||
- @backstage/plugin-techdocs-module-addons-contrib@1.1.3-next.0
|
||||
|
||||
## 0.0.4-next.0
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies
|
||||
- @backstage/core-compat-api@0.0.2-next.0
|
||||
- @backstage/core-plugin-api@1.8.1-next.0
|
||||
- @backstage/plugin-catalog-react@1.9.2-next.0
|
||||
- @backstage/plugin-api-docs@0.10.2-next.0
|
||||
- @backstage/core-components@0.13.9-next.0
|
||||
- @backstage/plugin-scaffolder@1.16.2-next.0
|
||||
- @backstage/plugin-catalog@1.16.0-next.0
|
||||
- @backstage/frontend-app-api@0.3.1-next.0
|
||||
- @backstage/plugin-org@0.6.18-next.0
|
||||
- @backstage/plugin-scaffolder-react@1.6.2-next.0
|
||||
- @backstage/plugin-catalog-import@0.10.4-next.0
|
||||
- @backstage/plugin-user-settings@0.7.14-next.0
|
||||
- @backstage/plugin-tech-radar@0.6.11-next.0
|
||||
- @backstage/plugin-graphiql@0.3.1-next.0
|
||||
- @backstage/plugin-techdocs@1.9.2-next.0
|
||||
- @backstage/plugin-search@1.4.4-next.0
|
||||
- @backstage/plugin-search-react@1.7.4-next.0
|
||||
- @backstage/cli@0.24.1-next.0
|
||||
- @backstage/plugin-home@0.5.12-next.0
|
||||
- @backstage/plugin-kubernetes@0.11.3-next.0
|
||||
- @backstage/theme@0.5.0-next.0
|
||||
- @backstage/frontend-plugin-api@0.3.1-next.0
|
||||
- @backstage/app-defaults@1.4.6-next.0
|
||||
- @backstage/core-app-api@1.11.2-next.0
|
||||
- @backstage/integration-react@1.1.22-next.0
|
||||
- @backstage/plugin-adr@0.6.11-next.0
|
||||
- @backstage/plugin-airbrake@0.3.28-next.0
|
||||
- @backstage/plugin-apache-airflow@0.2.18-next.0
|
||||
- @backstage/plugin-azure-devops@0.3.10-next.0
|
||||
- @backstage/plugin-azure-sites@0.1.17-next.0
|
||||
- @backstage/plugin-badges@0.2.52-next.0
|
||||
- @backstage/plugin-catalog-graph@0.3.2-next.0
|
||||
- @backstage/plugin-catalog-unprocessed-entities@0.1.6-next.0
|
||||
- @backstage/plugin-circleci@0.3.28-next.0
|
||||
- @backstage/plugin-cloudbuild@0.3.28-next.0
|
||||
- @backstage/plugin-code-coverage@0.2.21-next.0
|
||||
- @backstage/plugin-cost-insights@0.12.17-next.0
|
||||
- @backstage/plugin-devtools@0.1.7-next.0
|
||||
- @backstage/plugin-dynatrace@8.0.2-next.0
|
||||
- @backstage/plugin-entity-feedback@0.2.11-next.0
|
||||
- @backstage/plugin-explore@0.4.14-next.0
|
||||
- @backstage/plugin-gcalendar@0.3.21-next.0
|
||||
- @backstage/plugin-gcp-projects@0.3.44-next.0
|
||||
- @backstage/plugin-github-actions@0.6.9-next.0
|
||||
- @backstage/plugin-gocd@0.1.34-next.0
|
||||
- @backstage/plugin-jenkins@0.9.3-next.0
|
||||
- @backstage/plugin-kafka@0.3.28-next.0
|
||||
- @backstage/plugin-lighthouse@0.4.13-next.0
|
||||
- @backstage/plugin-linguist@0.1.13-next.0
|
||||
- @backstage/plugin-microsoft-calendar@0.1.10-next.0
|
||||
- @backstage/plugin-newrelic@0.3.43-next.0
|
||||
- @backstage/plugin-newrelic-dashboard@0.3.3-next.0
|
||||
- @backstage/plugin-octopus-deploy@0.2.10-next.0
|
||||
- @backstage/plugin-pagerduty@0.6.9-next.0
|
||||
- @backstage/plugin-permission-react@0.4.18-next.0
|
||||
- @backstage/plugin-playlist@0.2.2-next.0
|
||||
- @backstage/plugin-puppetdb@0.1.11-next.0
|
||||
- @backstage/plugin-rollbar@0.4.28-next.0
|
||||
- @backstage/plugin-sentry@0.5.13-next.0
|
||||
- @backstage/plugin-shortcuts@0.3.17-next.0
|
||||
- @backstage/plugin-stackstorm@0.1.9-next.0
|
||||
- @backstage/plugin-tech-insights@0.3.20-next.0
|
||||
- @backstage/plugin-techdocs-module-addons-contrib@1.1.3-next.0
|
||||
- @backstage/plugin-techdocs-react@1.1.14-next.0
|
||||
- @backstage/plugin-todo@0.2.32-next.0
|
||||
- app-next-example-plugin@0.0.4-next.0
|
||||
- @backstage/catalog-model@1.4.3
|
||||
- @backstage/config@1.1.1
|
||||
- @backstage/plugin-catalog-common@1.0.18
|
||||
- @backstage/plugin-linguist-common@0.1.2
|
||||
- @backstage/plugin-search-common@1.2.8
|
||||
|
||||
## 0.0.3
|
||||
|
||||
### Patch Changes
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "example-app-next",
|
||||
"version": "0.0.3",
|
||||
"version": "0.0.4-next.1",
|
||||
"private": true,
|
||||
"backstage": {
|
||||
"role": "frontend"
|
||||
|
||||
@@ -36,12 +36,18 @@ import { collectLegacyRoutes } from '@backstage/core-compat-api';
|
||||
import { FlatRoutes } from '@backstage/core-app-api';
|
||||
import { Route } from 'react-router';
|
||||
import { CatalogImportPage } from '@backstage/plugin-catalog-import';
|
||||
import { createApiFactory, configApiRef } from '@backstage/core-plugin-api';
|
||||
import {
|
||||
createApiFactory,
|
||||
configApiRef,
|
||||
SignInPageProps,
|
||||
} from '@backstage/core-plugin-api';
|
||||
import {
|
||||
ScmAuth,
|
||||
ScmIntegrationsApi,
|
||||
scmIntegrationsApiRef,
|
||||
} from '@backstage/integration-react';
|
||||
import { createSignInPageExtension } from '@backstage/frontend-plugin-api';
|
||||
import { SignInPage } from '@backstage/core-components';
|
||||
|
||||
/*
|
||||
|
||||
@@ -84,6 +90,12 @@ const homePageExtension = createExtension({
|
||||
},
|
||||
});
|
||||
|
||||
const signInPage = createSignInPageExtension({
|
||||
id: 'signInPage',
|
||||
loader: async () => (props: SignInPageProps) =>
|
||||
<SignInPage {...props} providers={['guest']} />,
|
||||
});
|
||||
|
||||
const scmAuthExtension = createApiExtension({
|
||||
factory: ScmAuth.createDefaultApiFactory(),
|
||||
});
|
||||
@@ -112,7 +124,12 @@ const app = createApp({
|
||||
homePlugin,
|
||||
...collectedLegacyPlugins,
|
||||
createExtensionOverrides({
|
||||
extensions: [homePageExtension, scmAuthExtension, scmIntegrationApi],
|
||||
extensions: [
|
||||
homePageExtension,
|
||||
scmAuthExtension,
|
||||
scmIntegrationApi,
|
||||
signInPage,
|
||||
],
|
||||
}),
|
||||
],
|
||||
/* Handled through config instead */
|
||||
|
||||
@@ -1,5 +1,102 @@
|
||||
# example-app
|
||||
|
||||
## 0.2.90-next.1
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies
|
||||
- @backstage/plugin-catalog@1.16.0-next.1
|
||||
- @backstage/plugin-catalog-import@0.10.4-next.1
|
||||
- @backstage/plugin-graphiql@0.3.1-next.1
|
||||
- @backstage/plugin-search@1.4.4-next.1
|
||||
- @backstage/plugin-tech-radar@0.6.11-next.1
|
||||
- @backstage/plugin-techdocs@1.9.2-next.1
|
||||
- @backstage/plugin-user-settings@0.7.14-next.1
|
||||
- @backstage/plugin-api-docs@0.10.2-next.1
|
||||
- @backstage/plugin-catalog-graph@0.3.2-next.0
|
||||
- @backstage/plugin-explore@0.4.14-next.0
|
||||
- @backstage/plugin-org@0.6.18-next.0
|
||||
- @backstage/plugin-scaffolder@1.16.2-next.0
|
||||
- @backstage/plugin-scaffolder-react@1.6.2-next.0
|
||||
- @backstage/plugin-techdocs-module-addons-contrib@1.1.3-next.0
|
||||
|
||||
## 0.2.90-next.0
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies
|
||||
- @backstage/core-plugin-api@1.8.1-next.0
|
||||
- @backstage/plugin-catalog-react@1.9.2-next.0
|
||||
- @backstage/plugin-api-docs@0.10.2-next.0
|
||||
- @backstage/core-components@0.13.9-next.0
|
||||
- @backstage/plugin-scaffolder@1.16.2-next.0
|
||||
- @backstage/plugin-catalog@1.16.0-next.0
|
||||
- @backstage/frontend-app-api@0.3.1-next.0
|
||||
- @backstage/plugin-org@0.6.18-next.0
|
||||
- @backstage/plugin-scaffolder-react@1.6.2-next.0
|
||||
- @backstage/plugin-catalog-import@0.10.4-next.0
|
||||
- @backstage/plugin-user-settings@0.7.14-next.0
|
||||
- @backstage/plugin-tech-radar@0.6.11-next.0
|
||||
- @backstage/plugin-graphiql@0.3.1-next.0
|
||||
- @backstage/plugin-techdocs@1.9.2-next.0
|
||||
- @backstage/plugin-search@1.4.4-next.0
|
||||
- @backstage/plugin-search-react@1.7.4-next.0
|
||||
- @backstage/cli@0.24.1-next.0
|
||||
- @backstage/plugin-home@0.5.12-next.0
|
||||
- @backstage/plugin-kubernetes@0.11.3-next.0
|
||||
- @backstage/theme@0.5.0-next.0
|
||||
- @backstage/app-defaults@1.4.6-next.0
|
||||
- @backstage/core-app-api@1.11.2-next.0
|
||||
- @backstage/integration-react@1.1.22-next.0
|
||||
- @backstage/plugin-adr@0.6.11-next.0
|
||||
- @backstage/plugin-airbrake@0.3.28-next.0
|
||||
- @backstage/plugin-apache-airflow@0.2.18-next.0
|
||||
- @backstage/plugin-azure-devops@0.3.10-next.0
|
||||
- @backstage/plugin-azure-sites@0.1.17-next.0
|
||||
- @backstage/plugin-badges@0.2.52-next.0
|
||||
- @backstage/plugin-catalog-graph@0.3.2-next.0
|
||||
- @backstage/plugin-catalog-unprocessed-entities@0.1.6-next.0
|
||||
- @backstage/plugin-circleci@0.3.28-next.0
|
||||
- @backstage/plugin-cloudbuild@0.3.28-next.0
|
||||
- @backstage/plugin-code-coverage@0.2.21-next.0
|
||||
- @backstage/plugin-cost-insights@0.12.17-next.0
|
||||
- @backstage/plugin-devtools@0.1.7-next.0
|
||||
- @backstage/plugin-dynatrace@8.0.2-next.0
|
||||
- @backstage/plugin-entity-feedback@0.2.11-next.0
|
||||
- @backstage/plugin-explore@0.4.14-next.0
|
||||
- @backstage/plugin-gcalendar@0.3.21-next.0
|
||||
- @backstage/plugin-gcp-projects@0.3.44-next.0
|
||||
- @backstage/plugin-github-actions@0.6.9-next.0
|
||||
- @backstage/plugin-gocd@0.1.34-next.0
|
||||
- @backstage/plugin-jenkins@0.9.3-next.0
|
||||
- @backstage/plugin-kafka@0.3.28-next.0
|
||||
- @backstage/plugin-kubernetes-cluster@0.0.4-next.0
|
||||
- @backstage/plugin-lighthouse@0.4.13-next.0
|
||||
- @backstage/plugin-linguist@0.1.13-next.0
|
||||
- @backstage/plugin-microsoft-calendar@0.1.10-next.0
|
||||
- @backstage/plugin-newrelic@0.3.43-next.0
|
||||
- @backstage/plugin-newrelic-dashboard@0.3.3-next.0
|
||||
- @backstage/plugin-nomad@0.1.9-next.0
|
||||
- @backstage/plugin-octopus-deploy@0.2.10-next.0
|
||||
- @backstage/plugin-pagerduty@0.6.9-next.0
|
||||
- @backstage/plugin-permission-react@0.4.18-next.0
|
||||
- @backstage/plugin-playlist@0.2.2-next.0
|
||||
- @backstage/plugin-puppetdb@0.1.11-next.0
|
||||
- @backstage/plugin-rollbar@0.4.28-next.0
|
||||
- @backstage/plugin-sentry@0.5.13-next.0
|
||||
- @backstage/plugin-shortcuts@0.3.17-next.0
|
||||
- @backstage/plugin-stack-overflow@0.1.23-next.0
|
||||
- @backstage/plugin-stackstorm@0.1.9-next.0
|
||||
- @backstage/plugin-tech-insights@0.3.20-next.0
|
||||
- @backstage/plugin-techdocs-module-addons-contrib@1.1.3-next.0
|
||||
- @backstage/plugin-techdocs-react@1.1.14-next.0
|
||||
- @backstage/plugin-todo@0.2.32-next.0
|
||||
- @backstage/catalog-model@1.4.3
|
||||
- @backstage/config@1.1.1
|
||||
- @backstage/plugin-catalog-common@1.0.18
|
||||
- @backstage/plugin-linguist-common@0.1.2
|
||||
- @backstage/plugin-search-common@1.2.8
|
||||
|
||||
## 0.2.89
|
||||
|
||||
### Patch Changes
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "example-app",
|
||||
"version": "0.2.89",
|
||||
"version": "0.2.90-next.1",
|
||||
"private": true,
|
||||
"backstage": {
|
||||
"role": "frontend"
|
||||
|
||||
@@ -1,5 +1,22 @@
|
||||
# @backstage/backend-app-api
|
||||
|
||||
## 0.5.9-next.0
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies
|
||||
- @backstage/backend-common@0.20.0-next.0
|
||||
- @backstage/backend-tasks@0.5.13-next.0
|
||||
- @backstage/plugin-auth-node@0.4.2-next.0
|
||||
- @backstage/plugin-permission-node@0.7.19-next.0
|
||||
- @backstage/backend-plugin-api@0.6.8-next.0
|
||||
- @backstage/cli-common@0.1.13
|
||||
- @backstage/cli-node@0.2.0
|
||||
- @backstage/config@1.1.1
|
||||
- @backstage/config-loader@1.5.3
|
||||
- @backstage/errors@1.2.3
|
||||
- @backstage/types@1.1.1
|
||||
|
||||
## 0.5.8
|
||||
|
||||
### Patch Changes
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "@backstage/backend-app-api",
|
||||
"description": "Core API used by Backstage backend apps",
|
||||
"version": "0.5.8",
|
||||
"version": "0.5.9-next.0",
|
||||
"main": "src/index.ts",
|
||||
"types": "src/index.ts",
|
||||
"publishConfig": {
|
||||
|
||||
@@ -14,25 +14,37 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import { TransformableInfo } from 'logform';
|
||||
import { WinstonLogger } from './WinstonLogger';
|
||||
|
||||
function msg(message: string) {
|
||||
return { message, level: 'info' };
|
||||
function msg(info: TransformableInfo): TransformableInfo {
|
||||
return { message: info.message, level: info.level, stack: info.stack };
|
||||
}
|
||||
|
||||
describe('WinstonLogger', () => {
|
||||
it('redacter should redact and escape regex', () => {
|
||||
const redacter = WinstonLogger.redacter();
|
||||
expect(redacter.format.transform(msg('hello (world)'))).toEqual(
|
||||
msg('hello (world)'),
|
||||
const log = {
|
||||
level: 'error',
|
||||
message: 'hello (world)',
|
||||
stack: 'hello (world) from this file',
|
||||
};
|
||||
expect(redacter.format.transform(msg(log))).toEqual(msg(log));
|
||||
redacter.add(['hello\n']);
|
||||
expect(redacter.format.transform(msg(log))).toEqual(
|
||||
msg({
|
||||
...log,
|
||||
message: '[REDACTED] (world)',
|
||||
stack: '[REDACTED] (world) from this file',
|
||||
}),
|
||||
);
|
||||
redacter.add(['hello']);
|
||||
expect(redacter.format.transform(msg('hello (world)'))).toEqual(
|
||||
msg('[REDACTED] (world)'),
|
||||
);
|
||||
redacter.add(['(world)']);
|
||||
expect(redacter.format.transform(msg('hello (world)'))).toEqual(
|
||||
msg('[REDACTED] [REDACTED]'),
|
||||
redacter.add(['(world']);
|
||||
expect(redacter.format.transform(msg(log))).toEqual(
|
||||
msg({
|
||||
...log,
|
||||
message: '[REDACTED] [REDACTED])',
|
||||
stack: '[REDACTED] [REDACTED]) from this file',
|
||||
}),
|
||||
);
|
||||
});
|
||||
});
|
||||
|
||||
@@ -82,11 +82,18 @@ export class WinstonLogger implements RootLoggerService {
|
||||
if (redactionPattern && typeof info.message === 'string') {
|
||||
info.message = info.message.replace(redactionPattern, '[REDACTED]');
|
||||
}
|
||||
if (redactionPattern && typeof info.stack === 'string') {
|
||||
info.stack = info.stack.replace(redactionPattern, '[REDACTED]');
|
||||
}
|
||||
return info;
|
||||
})(),
|
||||
add(newRedactions) {
|
||||
let added = 0;
|
||||
for (const redaction of newRedactions) {
|
||||
for (const redactionToTrim of newRedactions) {
|
||||
// Trimming the string ensures that we don't accdentally get extra
|
||||
// newlines or other whitespace interfering with the redaction; this
|
||||
// can happen for example when using string literals in yaml
|
||||
const redaction = redactionToTrim.trim();
|
||||
// Exclude secrets that are empty or just one character in length. These
|
||||
// typically mean that you are running local dev or tests, or using the
|
||||
// --lax flag which sets things to just 'x'.
|
||||
|
||||
@@ -1,5 +1,30 @@
|
||||
# @backstage/backend-common
|
||||
|
||||
## 0.20.0-next.0
|
||||
|
||||
### Minor Changes
|
||||
|
||||
- 870db76a45: Implemented `readTree` for Gitea provider to support TechDocs functionality
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- 7f04128bbc: Allow a default cache TTL to be set through the app config
|
||||
- 1ad8906a9e: Use `Readable.from` to fix some of the stream issues
|
||||
- 706fc3a7e1: Updated dependency `@kubernetes/client-node` to `0.20.0`.
|
||||
- d15d483a49: Add command `--runAsDefaultUser` for `@techdocs/cli generate` to bypass running the docker builds as host user for macOS and Linux.
|
||||
- d1e00aa17a: Expose an `onAuth` handler for `git` actions to provide custom credentials
|
||||
- Updated dependencies
|
||||
- @backstage/integration@1.8.0-next.0
|
||||
- @backstage/backend-app-api@0.5.9-next.0
|
||||
- @backstage/backend-plugin-api@0.6.8-next.0
|
||||
- @backstage/backend-dev-utils@0.1.2
|
||||
- @backstage/cli-common@0.1.13
|
||||
- @backstage/config@1.1.1
|
||||
- @backstage/config-loader@1.5.3
|
||||
- @backstage/errors@1.2.3
|
||||
- @backstage/integration-aws-node@0.1.8
|
||||
- @backstage/types@1.1.1
|
||||
|
||||
## 0.19.9
|
||||
|
||||
### Patch Changes
|
||||
|
||||
@@ -691,6 +691,7 @@ export type RunContainerOptions = {
|
||||
workingDir?: string;
|
||||
envVars?: Record<string, string>;
|
||||
pullImage?: boolean;
|
||||
defaultUser?: boolean;
|
||||
};
|
||||
|
||||
export { SearchOptions };
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "@backstage/backend-common",
|
||||
"description": "Common functionality library for Backstage backends",
|
||||
"version": "0.19.9",
|
||||
"version": "0.20.0-next.0",
|
||||
"main": "src/index.ts",
|
||||
"types": "src/index.ts",
|
||||
"publishConfig": {
|
||||
@@ -64,7 +64,7 @@
|
||||
"@backstage/integration": "workspace:^",
|
||||
"@backstage/integration-aws-node": "workspace:^",
|
||||
"@backstage/types": "workspace:^",
|
||||
"@google-cloud/storage": "^6.0.0",
|
||||
"@google-cloud/storage": "^7.0.0",
|
||||
"@keyv/memcache": "^1.3.5",
|
||||
"@keyv/redis": "^2.5.3",
|
||||
"@kubernetes/client-node": "0.20.0",
|
||||
|
||||
@@ -139,7 +139,7 @@ export class GerritUrlReader implements UrlReader {
|
||||
return Buffer.from(responseBody, 'base64');
|
||||
},
|
||||
stream: () => {
|
||||
const readable = new Readable().wrap(response.body);
|
||||
const readable = Readable.from(response.body);
|
||||
return readable.pipe(new Base64Decode());
|
||||
},
|
||||
};
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
|
||||
import { ConflictError } from '@backstage/errors';
|
||||
import getRawBody from 'raw-body';
|
||||
import { Readable, Stream } from 'stream';
|
||||
import { Readable } from 'stream';
|
||||
import { ReadUrlResponseFactory } from './ReadUrlResponseFactory';
|
||||
|
||||
describe('ReadUrlResponseFactory', () => {
|
||||
@@ -74,25 +74,10 @@ describe('ReadUrlResponseFactory', () => {
|
||||
|
||||
describe("fromNodeJSReadable's", () => {
|
||||
const expectedText = 'expected text';
|
||||
const timeouts: NodeJS.Timeout[] = [];
|
||||
let readable: NodeJS.ReadableStream;
|
||||
|
||||
beforeEach(() => {
|
||||
readable = new Stream({
|
||||
encoding: 'utf-8',
|
||||
}) as unknown as NodeJS.ReadableStream;
|
||||
readable.readable = true;
|
||||
|
||||
// Write data asynchronously, as soon as possible.
|
||||
timeouts[0] = setTimeout(() => {
|
||||
timeouts[1] = setTimeout(readable.emit.bind(readable, 'end'), 0);
|
||||
readable.emit('data', expectedText);
|
||||
}, 0);
|
||||
});
|
||||
|
||||
afterEach(() => {
|
||||
// Clear out timeouts so we don't emit data across tests.
|
||||
timeouts.forEach(clearTimeout);
|
||||
readable = Readable.from(Buffer.from(expectedText));
|
||||
});
|
||||
|
||||
it('etag is passed through', async () => {
|
||||
|
||||
@@ -72,7 +72,7 @@ export class ReadUrlResponseFactory {
|
||||
oldStyleStream: NodeJS.ReadableStream,
|
||||
options?: ReadUrlResponseFactoryFromStreamOptions,
|
||||
): Promise<ReadUrlResponse> {
|
||||
const readable = new Readable().wrap(oldStyleStream);
|
||||
const readable = Readable.from(oldStyleStream);
|
||||
return ReadUrlResponseFactory.fromReadable(readable, options);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -30,6 +30,7 @@ export type RunContainerOptions = {
|
||||
workingDir?: string;
|
||||
envVars?: Record<string, string>;
|
||||
pullImage?: boolean;
|
||||
defaultUser?: boolean;
|
||||
};
|
||||
|
||||
/**
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user