Merge remote-tracking branch 'upstream/master'
This commit is contained in:
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/plugin-catalog-backend-module-bitbucket-cloud': patch
|
||||
---
|
||||
|
||||
Refresh (potentially) updated catalog files on `repo:push` more efficiently.
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/plugin-azure-devops-backend': patch
|
||||
---
|
||||
|
||||
Updated installation documentation
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/plugin-catalog': minor
|
||||
---
|
||||
|
||||
Fixes in kind selectors (now `OwnershipCard` works again). `EntityKindPicker` now accepts an optional `allowedKinds` prop, just like `CatalogKindHeader`.
|
||||
@@ -0,0 +1,20 @@
|
||||
---
|
||||
'@backstage/core-plugin-api': minor
|
||||
---
|
||||
|
||||
Added a new `display` property to the `AlertMessage` which can accept the values `permanent` or `transient`.
|
||||
|
||||
Here's a rough example of how to trigger an alert using the new `display` property:
|
||||
|
||||
```ts
|
||||
import { alertApiRef, useApi } from '@backstage/core-plugin-api';
|
||||
|
||||
const ExampleTransient = () => {
|
||||
const alertApi = useApi(alertApiRef);
|
||||
alertApi.post({
|
||||
message: 'Example of Transient Alert',
|
||||
severity: 'success',
|
||||
display: 'transient',
|
||||
});
|
||||
};
|
||||
```
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/plugin-search-react': minor
|
||||
---
|
||||
|
||||
The `value` of a search analytics event is now set as the total number of search results (when available)
|
||||
@@ -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,7 @@
|
||||
---
|
||||
'@backstage/plugin-search-backend': minor
|
||||
'@backstage/plugin-search-backend-module-elasticsearch': minor
|
||||
'@backstage/plugin-search-backend-node': minor
|
||||
---
|
||||
|
||||
numberOfResults is now provided alongside the query result
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/plugin-explore': patch
|
||||
---
|
||||
|
||||
Update search links to only have header as linkable text
|
||||
@@ -0,0 +1,10 @@
|
||||
---
|
||||
'@backstage/plugin-bazaar-backend': patch
|
||||
'@backstage/plugin-catalog-backend': patch
|
||||
'@backstage/plugin-catalog-backend-module-incremental-ingestion': patch
|
||||
'@backstage/plugin-playlist-backend': patch
|
||||
'@backstage/plugin-search-backend-module-pg': patch
|
||||
'@backstage/plugin-user-settings-backend': patch
|
||||
---
|
||||
|
||||
Ensured typescript type checks in migration files.
|
||||
@@ -0,0 +1,22 @@
|
||||
---
|
||||
'@backstage/backend-app-api': patch
|
||||
'@backstage/plugin-app-backend': patch
|
||||
'@backstage/plugin-catalog-backend': patch
|
||||
'@backstage/plugin-catalog-backend-module-aws': patch
|
||||
'@backstage/plugin-catalog-backend-module-azure': patch
|
||||
'@backstage/plugin-catalog-backend-module-bitbucket-cloud': patch
|
||||
'@backstage/plugin-catalog-backend-module-bitbucket-server': patch
|
||||
'@backstage/plugin-catalog-backend-module-gerrit': patch
|
||||
'@backstage/plugin-catalog-backend-module-github': patch
|
||||
'@backstage/plugin-catalog-backend-module-gitlab': patch
|
||||
'@backstage/plugin-catalog-backend-module-incremental-ingestion': patch
|
||||
'@backstage/plugin-catalog-backend-module-msgraph': patch
|
||||
'@backstage/plugin-catalog-node': patch
|
||||
'@backstage/plugin-events-backend': patch
|
||||
'@backstage/plugin-events-backend-module-aws-sqs': patch
|
||||
'@backstage/plugin-events-backend-module-github': patch
|
||||
'@backstage/plugin-events-backend-module-gitlab': patch
|
||||
'@backstage/plugin-scaffolder-backend': patch
|
||||
---
|
||||
|
||||
Refactored to use `coreServices` from `@backstage/backend-plugin-api`.
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/backend-common': patch
|
||||
---
|
||||
|
||||
Fixed GitlabUrlReader to include api tokens in API calls
|
||||
@@ -0,0 +1,6 @@
|
||||
---
|
||||
'@backstage/plugin-catalog-backend': patch
|
||||
'@backstage/plugin-catalog-node': minor
|
||||
---
|
||||
|
||||
Make it possible for entity providers to supply only entity refs, instead of full entities, in `delta` mutation deletions.
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/cli': patch
|
||||
---
|
||||
|
||||
Fix webpack dev server issue where it wasn't serving `index.html` from correct endpoint on subsequent requests.
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/plugin-catalog': patch
|
||||
---
|
||||
|
||||
Handle refresh entity error in `AboutCard`.
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/core-app-api': patch
|
||||
---
|
||||
|
||||
Tweak feature flag registration so that it happens immediately before the first rendering of the app, rather than just after.
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/plugin-bazaar': patch
|
||||
---
|
||||
|
||||
Add `title` as optional parameter to `BazaarOverviewCard`
|
||||
@@ -0,0 +1,16 @@
|
||||
---
|
||||
'@backstage/backend-common': minor
|
||||
'@backstage/backend-tasks': minor
|
||||
'@backstage/plugin-catalog-backend-module-incremental-ingestion': patch
|
||||
'@backstage/plugin-search-backend-node': patch
|
||||
---
|
||||
|
||||
Changed to use native `AbortController` and `AbortSignal` from Node.js, instead
|
||||
of the one from `node-abort-controller`. This is possible now that the minimum
|
||||
supported Node.js version of the project is 16.
|
||||
|
||||
Note that their interfaces are very slightly different, but typically not in a
|
||||
way that matters to consumers. If you see any typescript errors as a direct
|
||||
result from this, they are compatible with each other in the ways that we
|
||||
interact with them, and should be possible to type-cast across without ill
|
||||
effects.
|
||||
@@ -0,0 +1,21 @@
|
||||
---
|
||||
'@backstage/plugin-scaffolder-backend': minor
|
||||
---
|
||||
|
||||
Deprecated the `taskWorkers` option in RouterOptions in favor of `concurrentTasksLimit` which sets the limit of concurrent tasks in a single TaskWorker
|
||||
|
||||
TaskWorker can now run multiple (defaults to 10) tasks concurrently using the `concurrentTasksLimit` option available in both `RouterOptions` and `CreateWorkerOptions`.
|
||||
|
||||
To use the option to create a TaskWorker:
|
||||
|
||||
```diff
|
||||
const worker = await TaskWorker.create({
|
||||
taskBroker,
|
||||
actionRegistry,
|
||||
integrations,
|
||||
logger,
|
||||
workingDirectory,
|
||||
additionalTemplateFilters,
|
||||
+ concurrentTasksLimit: 10 // (1 to Infinity)
|
||||
});
|
||||
```
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/plugin-vault-backend': patch
|
||||
---
|
||||
|
||||
Added (optional) config `vault.publicUrl` as alternative to `vault.baseUrl` for `editUrl` and `showUrl` in case `vault.baseUrl` is internal
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/backend-plugin-api': minor
|
||||
---
|
||||
|
||||
**BREAKING**: All core service references are now exported via a single `coreServices` object. For example, the `loggerServiceRef` is now accessed via `coreServices.logger` instead.
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/plugin-catalog': minor
|
||||
---
|
||||
|
||||
Removed `CatalogKindHeader` from `DefaultCatalogPage`. Deprecated `CatalogKindHeader` in favour of `EntityKindPicker`.
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/core-components': patch
|
||||
---
|
||||
|
||||
Made AlertDisplay not crash on undefined messages
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/plugin-catalog-react': patch
|
||||
---
|
||||
|
||||
Cleanup and small fixes for the kind selector
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/core-app-api': patch
|
||||
---
|
||||
|
||||
Prevent duplicate feature flag components from rendering in the settings when using <FeatureFlagged /> components
|
||||
@@ -0,0 +1,6 @@
|
||||
---
|
||||
'@backstage/backend-common': patch
|
||||
'@backstage/plugin-catalog-backend': patch
|
||||
---
|
||||
|
||||
Adds MySQL support for the catalog-backend
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/plugin-cost-insights': patch
|
||||
---
|
||||
|
||||
Internal refactor to avoid usage of deprecated symbols
|
||||
+86
-1
@@ -187,48 +187,133 @@
|
||||
"@backstage/plugin-user-settings-backend": "0.1.2",
|
||||
"@backstage/plugin-vault": "0.1.5",
|
||||
"@backstage/plugin-vault-backend": "0.2.4",
|
||||
"@backstage/plugin-xcmetrics": "0.2.31"
|
||||
"@backstage/plugin-xcmetrics": "0.2.31",
|
||||
"@backstage/plugin-catalog-backend-module-incremental-ingestion": "0.0.0",
|
||||
"@backstage/plugin-explore-backend": "0.0.0",
|
||||
"@backstage/plugin-explore-common": "0.0.0"
|
||||
},
|
||||
"changesets": [
|
||||
"angry-dingos-lick",
|
||||
"angry-trees-relax",
|
||||
"beige-chairs-repair",
|
||||
"blue-chefs-know",
|
||||
"brave-bags-sniff",
|
||||
"chilled-ladybugs-cough",
|
||||
"chilly-ads-lay",
|
||||
"clean-paws-fry",
|
||||
"clean-seals-whisper",
|
||||
"clever-pillows-drive",
|
||||
"clever-rivers-obey",
|
||||
"create-app-1669131574",
|
||||
"create-app-1669720399",
|
||||
"create-app-1670332900",
|
||||
"dry-melons-listen",
|
||||
"dry-radios-live",
|
||||
"early-hairs-switch",
|
||||
"early-parrots-guess",
|
||||
"eight-eels-compete",
|
||||
"eight-spiders-know",
|
||||
"eight-tables-hunt",
|
||||
"empty-taxis-run",
|
||||
"fair-walls-talk",
|
||||
"famous-cobras-suffer",
|
||||
"famous-crews-speak",
|
||||
"fast-lies-remain",
|
||||
"fifty-news-stare",
|
||||
"five-trainers-admire",
|
||||
"fluffy-walls-approve",
|
||||
"forty-baboons-burn",
|
||||
"four-adults-provide",
|
||||
"four-buttons-clean",
|
||||
"fresh-news-push",
|
||||
"funny-numbers-compete",
|
||||
"gentle-ligers-help",
|
||||
"gold-icons-cheat",
|
||||
"gold-yaks-join",
|
||||
"gorgeous-hairs-applaud",
|
||||
"healthy-crabs-collect",
|
||||
"hip-chairs-tap",
|
||||
"hip-stingrays-kneel",
|
||||
"hip-wasps-yell",
|
||||
"itchy-walls-boil",
|
||||
"kind-walls-share",
|
||||
"light-snakes-exercise",
|
||||
"light-turtles-yawn",
|
||||
"little-chairs-dance",
|
||||
"loud-rockets-reply",
|
||||
"loud-snails-sleep",
|
||||
"many-bikes-press",
|
||||
"modern-camels-cheat",
|
||||
"modern-jokes-attack",
|
||||
"modern-mugs-shout",
|
||||
"nasty-melons-build",
|
||||
"neat-lies-know",
|
||||
"nervous-mice-flow",
|
||||
"new-bugs-march",
|
||||
"nice-apricots-love",
|
||||
"nice-pants-boil",
|
||||
"nine-ears-whisper",
|
||||
"old-bulldogs-fry",
|
||||
"old-keys-leave",
|
||||
"old-sloths-warn",
|
||||
"old-tips-cough",
|
||||
"pretty-eagles-matter",
|
||||
"pretty-melons-taste",
|
||||
"quick-horses-cry",
|
||||
"renovate-1e2853d",
|
||||
"renovate-3fe8460",
|
||||
"renovate-4bb70f3",
|
||||
"renovate-4cbe4f9",
|
||||
"renovate-50ee0c3",
|
||||
"renovate-61ad428",
|
||||
"renovate-778b2fa",
|
||||
"renovate-8c69aed",
|
||||
"renovate-a5f7839",
|
||||
"renovate-bf8dfb3",
|
||||
"renovate-ceb9248",
|
||||
"renovate-ebb2ea1",
|
||||
"rich-balloons-leave",
|
||||
"rich-garlics-play",
|
||||
"rude-pugs-deny",
|
||||
"rude-sloths-cross",
|
||||
"search-heavy-frogs-confess",
|
||||
"search-lieutenant-dangle",
|
||||
"search-om-manniskan-ginge",
|
||||
"search-tofu-panaeng",
|
||||
"selfish-lizards-invent",
|
||||
"serious-windows-occur",
|
||||
"sharp-shoes-bathe",
|
||||
"short-turtles-dream",
|
||||
"shy-cycles-add",
|
||||
"silly-wolves-remember",
|
||||
"silver-rats-rest",
|
||||
"slow-dragons-promise",
|
||||
"slow-eggs-grab",
|
||||
"slow-flies-marinate",
|
||||
"slow-flies-marry",
|
||||
"slow-lies-jam",
|
||||
"smart-radios-change",
|
||||
"soft-nails-arrive",
|
||||
"sour-flowers-care",
|
||||
"sour-plums-grow",
|
||||
"sour-queens-wait",
|
||||
"strange-rocks-hide",
|
||||
"strong-peaches-melt",
|
||||
"strong-rice-warn",
|
||||
"stupid-clocks-return",
|
||||
"stupid-gifts-serve",
|
||||
"sweet-pandas-relax",
|
||||
"tender-colts-greet",
|
||||
"tender-parrots-cover",
|
||||
"thin-donuts-join",
|
||||
"thin-flies-wink",
|
||||
"twelve-meals-smell",
|
||||
"twenty-dodos-wash",
|
||||
"warm-parents-notice",
|
||||
"weak-ears-jam",
|
||||
"wicked-games-search",
|
||||
"yellow-forks-knock",
|
||||
"young-chairs-check",
|
||||
"young-turkeys-relax"
|
||||
]
|
||||
}
|
||||
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/cli': patch
|
||||
---
|
||||
|
||||
Updated dependency `minimatch` to `5.1.1` and switch version range to `^`.
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/cli': patch
|
||||
---
|
||||
|
||||
Updated dependency `@rollup/plugin-commonjs` to `^23.0.0`.
|
||||
@@ -0,0 +1,17 @@
|
||||
---
|
||||
'@backstage/core-app-api': patch
|
||||
'@backstage/core-components': patch
|
||||
'@backstage/core-plugin-api': patch
|
||||
'@backstage/dev-utils': patch
|
||||
'@backstage/test-utils': patch
|
||||
'@backstage/types': patch
|
||||
'@backstage/plugin-catalog-react': patch
|
||||
'@backstage/plugin-catalog': patch
|
||||
'@backstage/plugin-config-schema': patch
|
||||
'@backstage/plugin-scaffolder-backend': patch
|
||||
'@backstage/plugin-scaffolder': patch
|
||||
'@backstage/plugin-shortcuts': patch
|
||||
'@backstage/plugin-user-settings': patch
|
||||
---
|
||||
|
||||
Updated dependency `zen-observable` to `^0.10.0`.
|
||||
@@ -0,0 +1,8 @@
|
||||
---
|
||||
'@backstage/core-components': patch
|
||||
'@backstage/plugin-gcp-projects': patch
|
||||
'@backstage/plugin-scaffolder': patch
|
||||
'@backstage/plugin-techdocs-module-addons-contrib': patch
|
||||
---
|
||||
|
||||
Updated dependency `@react-hookz/web` to `^19.0.0`.
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/backend-common': patch
|
||||
---
|
||||
|
||||
Updated dependency `@types/http-errors` to `^2.0.0`.
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/cli': patch
|
||||
---
|
||||
|
||||
Updated dependency `@rollup/plugin-yaml` to `^4.0.0`.
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/cli': patch
|
||||
---
|
||||
|
||||
Updated dependency `@rollup/plugin-json` to `^5.0.0`.
|
||||
@@ -0,0 +1,8 @@
|
||||
---
|
||||
'@backstage/core-components': patch
|
||||
'@backstage/plugin-gcp-projects': patch
|
||||
'@backstage/plugin-scaffolder': patch
|
||||
'@backstage/plugin-techdocs-module-addons-contrib': patch
|
||||
---
|
||||
|
||||
Updated dependency `@react-hookz/web` to `^20.0.0`.
|
||||
@@ -0,0 +1,27 @@
|
||||
---
|
||||
'@backstage/plugin-catalog-backend': minor
|
||||
---
|
||||
|
||||
The catalog no longer stops after the first processor `validateEntityKind`
|
||||
method returns `true` when validating entity kind shapes. Instead, it continues
|
||||
through all registered processors that have this method, and requires that _at
|
||||
least one_ of them returned true.
|
||||
|
||||
The old behavior of stopping early made it harder to extend existing core kinds
|
||||
with additional fields, since the `BuiltinKindsEntityProcessor` is always
|
||||
present at the top of the processing chain and ensures that your additional
|
||||
validation code would never be run.
|
||||
|
||||
This is technically a breaking change, although it should not affect anybody
|
||||
under normal circumstances, except if you had problematic validation code that
|
||||
you were unaware that it was not being run. That code may now start to exhibit
|
||||
those problems.
|
||||
|
||||
If you need to disable this new behavior, `CatalogBuilder` as used in your
|
||||
`packages/backend/src/plugins/catalog.ts` file now has a
|
||||
`useLegacySingleProcessorValidation()` method to go back to the old behavior.
|
||||
|
||||
```diff
|
||||
const builder = await CatalogBuilder.create(env);
|
||||
+builder.useLegacySingleProcessorValidation();
|
||||
```
|
||||
@@ -0,0 +1,14 @@
|
||||
---
|
||||
'@backstage/plugin-explore': patch
|
||||
'@backstage/plugin-explore-backend': patch
|
||||
'@backstage/plugin-explore-common': patch
|
||||
'@backstage/plugin-explore-react': patch
|
||||
---
|
||||
|
||||
Added new `@backstage/plugin-explore-backend` & `@backstage/plugin-explore-common` packages.
|
||||
|
||||
This deprecates the `ExploreToolsConfig` API (in `@backstage/plugin-explore-react`) which is replaced by the `ExploreApi` & `ExploreClient`. The list of `ExploreTool` data can now be provided on the backend by either using the supplied `StaticExploreToolProvider` or by implementing a custom `ExploreToolProvider`. See the [explore-backend README](https://github.com/backstage/backstage/blob/master/plugins/explore-backend/README.md) for full details.
|
||||
|
||||
NOTE: Existing installations that have customized the `ExploreToolConfig` will continue to work through the new `ExploreClient`. However, existing data should be migrated over to new `explore-backend` plugin as `ExploreToolConfig` will be removed in the future.
|
||||
|
||||
BREAKING CHANGE: If you have previously installed the `explore` plugin, but not yet customized the `ExploreToolConfig` API in your `packages/app`, this will result in an empty list of tools.
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/plugin-search-backend-module-elasticsearch': patch
|
||||
---
|
||||
|
||||
Fixed a bug that prevented indices from being cleaned up under some circumstances, which could have led to shard exhaustion.
|
||||
@@ -0,0 +1,6 @@
|
||||
---
|
||||
'@backstage/plugin-analytics-module-ga': patch
|
||||
---
|
||||
|
||||
Added support for sending virtual pageviews on `search` events in order to enable
|
||||
Site Search functionality in GA. For more information consult [README](/plugins/analytics-module-ga/README.md#enabling-site-search)
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/plugin-catalog-backend-module-incremental-ingestion': patch
|
||||
---
|
||||
|
||||
Make incremental providers more resilient to failures
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/plugin-stack-overflow-backend': patch
|
||||
---
|
||||
|
||||
Added option to supply API Access Token. This is required in addition to an API key when trying to access the data for a private Stack Overflow Team.
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/plugin-catalog-graph': patch
|
||||
---
|
||||
|
||||
Set the default `maxDepth` prop for `EntityRelationsGraph` to a smaller value to provide better readability.
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/plugin-search-common': minor
|
||||
---
|
||||
|
||||
numberOfResults (total number of results for a given query) can now be provided by each search engine and consumed as part of the search results response
|
||||
@@ -0,0 +1,8 @@
|
||||
---
|
||||
'@backstage/repo-tools': minor
|
||||
---
|
||||
|
||||
Api reference documentation improvements
|
||||
|
||||
- breadcrumbs links semantics as code spans
|
||||
- new `@config` annotation to describe related config keys
|
||||
@@ -0,0 +1,11 @@
|
||||
---
|
||||
'@backstage/backend-common': patch
|
||||
'@backstage/cli': patch
|
||||
'@backstage/cli-common': patch
|
||||
'@backstage/core-app-api': patch
|
||||
'@backstage/core-components': patch
|
||||
'@backstage/dev-utils': patch
|
||||
'@techdocs/cli': patch
|
||||
---
|
||||
|
||||
Tweaked wording to use inclusive terminology
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/plugin-catalog-backend': minor
|
||||
---
|
||||
|
||||
The search table also holds the original entity value now and the facets endpoint fetches the filtered entity data from the search table.
|
||||
@@ -0,0 +1,6 @@
|
||||
---
|
||||
'@backstage/core-components': patch
|
||||
'@backstage/test-utils': patch
|
||||
---
|
||||
|
||||
Sync components in @backstage/core-components with the Component Design Guidelines
|
||||
@@ -0,0 +1,19 @@
|
||||
---
|
||||
'@backstage/core-components': patch
|
||||
---
|
||||
|
||||
Added an option to allow the `AlertMessage` to be self-closing. This is done with a new `display` property that is set to `transient` on the `AlertMessage` when triggering a message to the `AlertApi`. The length of time that these transient messages stay open for can be set using the `transientTimeoutMs` prop on the `AlertDisplay` in the `App.tsx`. Here is an example:
|
||||
|
||||
```diff
|
||||
const App = () => (
|
||||
<AppProvider>
|
||||
+ <AlertDisplay transientTimeoutMs={2500} />
|
||||
<OAuthRequestDialog />
|
||||
<AppRouter>
|
||||
<Root>{routes}</Root>
|
||||
</AppRouter>
|
||||
</AppProvider>
|
||||
);
|
||||
```
|
||||
|
||||
The above example will set the transient timeout to 2500ms from the default of 5000ms
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/core-components': patch
|
||||
---
|
||||
|
||||
InfoCard - Remove subheader container when there is not a subheader or icon
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/plugin-scaffolder': patch
|
||||
---
|
||||
|
||||
Bump `json-schema-library` to version `^7.3.9` which does not pull in the `gson-pointer` library
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/plugin-proxy-backend': patch
|
||||
---
|
||||
|
||||
Documented the `createRouter` method.
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/core-app-api': patch
|
||||
---
|
||||
|
||||
Apps will now rewrite the `app.baseUrl` configuration to match the current `location.origin`. The `backend.baseUrl` will also be rewritten in the same way when the `app.baseUrl` and `backend.baseUrl` have matching origins. This will reduce the need for separate frontend builds for different environments.
|
||||
@@ -27,8 +27,8 @@ jobs:
|
||||
with:
|
||||
ref: '${{ github.event.pull_request.merge_commit_sha }}'
|
||||
|
||||
- name: fetch base
|
||||
run: git fetch --depth 1 origin ${{ github.event.pull_request.base.sha }}
|
||||
- name: fetch head & base
|
||||
run: git fetch --depth 1 origin ${{ github.event.pull_request.head.sha }} ${{ github.event.pull_request.base.sha }}
|
||||
|
||||
# We avoid using the in-source script since this workflow has elevated permissions that we don't want to expose
|
||||
- name: Generate Message
|
||||
|
||||
@@ -48,7 +48,7 @@ Once you've saved the action, you should see an authentication flow be triggered
|
||||
### Frontend
|
||||
|
||||
The Backstage App needs a SignInPage when authentication is required.
|
||||
When using ALB authentication Backstage will only be loaded once the user has successfully authenticated; we won't need to display a SignIn page, however we will need to create a dummy SignIn component that can refresh the token.
|
||||
When using ALB authentication Backstage will only be loaded once the user has successfully authenticated; we won't need to display a SignIn page, however we will need to create a placeholder SignIn component that can refresh the token.
|
||||
|
||||
- edit `packages/app/src/App.tsx`
|
||||
- import the following two additional definitions from `@backstage/core-plugin-api`: `useApi`, `configApiRef`; these will be used to check whether Backstage is running locally or behind an ALB
|
||||
@@ -59,7 +59,7 @@ import React from 'react';
|
||||
import { UserIdentity } from '@backstage/core-components';
|
||||
import { SignInPageProps } from '@backstage/core-app-api';
|
||||
|
||||
const DummySignInComponent: any = (props: SignInPageProps) => {
|
||||
const SampleSignInComponent: any = (props: SignInPageProps) => {
|
||||
const [error, setError] = React.useState<string | undefined>();
|
||||
const config = useApi(configApiRef);
|
||||
React.useEffect(() => {
|
||||
@@ -102,13 +102,13 @@ const DummySignInComponent: any = (props: SignInPageProps) => {
|
||||
};
|
||||
```
|
||||
|
||||
- add `DummySignInComponent` as `SignInPage`:
|
||||
- add `SampleSignInComponent` as `SignInPage`:
|
||||
|
||||
```ts
|
||||
const app = createApp({
|
||||
...
|
||||
components: {
|
||||
SignInPage: DummySignInComponent,
|
||||
SignInPage: SampleSignInComponent,
|
||||
...
|
||||
},
|
||||
...
|
||||
|
||||
+1
-1
@@ -54,7 +54,7 @@ begun work on various aspects of all three phases. Looking at the
|
||||
[milestones for active issues](https://github.com/backstage/backstage/milestones)
|
||||
will also give you a sense of our progress.
|
||||
|
||||
### My company doesn't have thousands of developers or services. Is Backstage overkill?
|
||||
### My company doesn't have thousands of developers or services. Is using Backstage excessive for our needs?
|
||||
|
||||
Not at all! A core reason to adopt Backstage is to standardize how software is
|
||||
built at your company. It's easier to decide on those standards as a small
|
||||
|
||||
@@ -10,7 +10,7 @@ description: Architecture Decision Record (ADR) for Luxon Date Library
|
||||
Date formatting (e.g. `a day ago`) and calculations are common within Backstage.
|
||||
Some of these useful features are not supported by the standard JavaScript
|
||||
`Date` object. The popular [Moment.js](https://momentjs.com/) library has been
|
||||
commonly used to fill this gap but suffers from large bundle sizes and mutable
|
||||
commonly used to fill this gap but is affected by large bundle sizes and mutable
|
||||
state issues. On top of this, `momentjs` is
|
||||
[being sunset](https://momentjs.com/docs/#/-project-status/) and the project
|
||||
recommends using one of the more modern alternative libraries.
|
||||
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 80 KiB |
@@ -63,7 +63,7 @@ export default async function createPlugin(
|
||||
// and the access token and produces the Backstage token with the
|
||||
// relevant user info.
|
||||
async resolver({ profile, result }, ctx) {
|
||||
// Somehow compute the Backstage token claims. Just some dummy code
|
||||
// Somehow compute the Backstage token claims. Just some sample code
|
||||
// shown here, but you may want to query your LDAP server, or
|
||||
// https://<teamName>.cloudflareaccess.com/cdn-cgi/access/get-identity
|
||||
// https://developers.cloudflare.com/cloudflare-one/identity/users/validating-json/#groups-within-a-jwt
|
||||
|
||||
@@ -70,7 +70,7 @@ export default async function createPlugin(
|
||||
// and the IAP token and produces the Backstage token with the
|
||||
// relevant user info.
|
||||
async resolver({ profile, result: { iapToken } }, ctx) {
|
||||
// Somehow compute the Backstage token claims. Just some dummy code
|
||||
// Somehow compute the Backstage token claims. Just some sample code
|
||||
// shown here, but you may want to query your LDAP server, or
|
||||
// GSuite or similar, based on the IAP token sub/email claims
|
||||
const id = iapToken.email.split('@')[0];
|
||||
|
||||
@@ -256,7 +256,7 @@ bash-5.1# exit
|
||||
|
||||
The database pod is running, but how does another pod connect to it?
|
||||
|
||||
Kubernetes pods are transient - they can be killed, restarted, or created
|
||||
Kubernetes pods are transient - they can be stopped, restarted, or created
|
||||
dynamically. Therefore we don't want to try to connect to pods directly, but
|
||||
rather create a Kubernetes Service. Services keep track of pods and direct
|
||||
traffic to the right place.
|
||||
|
||||
@@ -360,7 +360,7 @@ Fields of a link are:
|
||||
_NOTE_: The `icon` field value is meant to be a semantic key that will map to a
|
||||
specific icon that may be provided by an icon library (e.g. `material-ui`
|
||||
icons). These keys should be a sequence of `[a-z0-9A-Z]`, possibly separated by
|
||||
one of `[-_.]`. Backstage may support some basic icons out of the box, but the
|
||||
one of `[-_.]`. Backstage may support some basic icons out of the box such as those [defined in app-defaults](https://github.com/backstage/backstage/blob/master/packages/app-defaults/src/defaults/icons.tsx), but the
|
||||
Backstage integrator will ultimately be left to provide the appropriate icon
|
||||
component mappings. A generic fallback icon would be provided if a mapping
|
||||
cannot be resolved.
|
||||
|
||||
@@ -50,7 +50,7 @@ components need to be in a known machine-readable format so we can build further
|
||||
tooling and analysis on top.
|
||||
|
||||
APIs have a visibility: they are either public (making them available for any
|
||||
other component to consume), restricted (only available to a whitelisted set of
|
||||
other component to consume), restricted (only available to an allowlisted set of
|
||||
consumers), or private (only available within their system). As public APIs are
|
||||
going to be the primary way interaction between components, Backstage supports
|
||||
documenting, indexing and searching all APIs so we can browse them as
|
||||
|
||||
@@ -260,7 +260,7 @@ development dependency only.
|
||||
|
||||
It can sometimes be difficult to decide where to place your plugin code. For example
|
||||
should it go directly in the `-backend` plugin package or in the `-node` package?
|
||||
As a rule of thumb you should try to keep the exposure of your code as low
|
||||
As a general guideline you should try to keep the exposure of your code as low
|
||||
as possible. If it doesn't need to be public API, it's best to avoid. If you don't
|
||||
need it to be used by other plugins, then keep it directly in the plugin packages.
|
||||
|
||||
|
||||
@@ -52,13 +52,13 @@ learn how to contribute the integration yourself!
|
||||
The following table summarizes events that, depending on the plugins you have
|
||||
installed, may be captured.
|
||||
|
||||
| Action | Subject | Other Notes |
|
||||
| ---------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | --------------------------------------------------------------------------------------------------- |
|
||||
| `navigate` | The URL of the page that was navigated to | |
|
||||
| `click` | The text of the link that was clicked on | The `to` attribute represents the URL clicked to |
|
||||
| `create` | The `name` of the software being created; if no `name` property is requested by the given Software Template, then the string `new {templateName}` is used instead. | The context holds an `entityRef`, set to the template's ref (e.g. `template:default/template-name`) |
|
||||
| `search` | The search term entered in any search bar component | The context holds `searchTypes`, representing `types` constraining the search |
|
||||
| `discover` | The title of the search result that was clicked on | The `value` is the result rank. A `to` attribute is also provided |
|
||||
| Action | Subject | Other Notes |
|
||||
| ---------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| `navigate` | The URL of the page that was navigated to | |
|
||||
| `click` | The text of the link that was clicked on | The `to` attribute represents the URL clicked to |
|
||||
| `create` | The `name` of the software being created; if no `name` property is requested by the given Software Template, then the string `new {templateName}` is used instead. | The context holds an `entityRef`, set to the template's ref (e.g. `template:default/template-name`) |
|
||||
| `search` | The search term entered in any search bar component | - The context holds `searchTypes`, representing `types` constraining the search. The `value` represents the total number of search results for the query. This may not be visible if the permission framework is being used. |
|
||||
| `discover` | The title of the search result that was clicked on | The `value` is the result rank. A `to` attribute is also provided |
|
||||
|
||||
If there is an event you'd like to see captured, please [open an
|
||||
issue][add-event] describing the event you want to see and the questions it
|
||||
|
||||
@@ -51,7 +51,7 @@ terminal window, now run
|
||||
curl localhost:7007/carmen/health
|
||||
```
|
||||
|
||||
This should return `{"status":"ok"}`. Success! Press `Ctrl + c` to kill it
|
||||
This should return `{"status":"ok"}`. Success! Press `Ctrl + c` to stop it
|
||||
again.
|
||||
|
||||
## Developing your Backend Plugin
|
||||
|
||||
@@ -123,7 +123,7 @@ than simply letting them know they had an invalid input.
|
||||
> input change.
|
||||
|
||||
This piggybacks the Scalability Principle and applies primarily to frontend
|
||||
development. As a general rule of thumb, frontends should be flexible enough so
|
||||
development. As a general guideline, frontends should be flexible enough so
|
||||
that the UX or design can change while touching the least amount of code
|
||||
possible. So for example, a poor unit test would verify the color of a button
|
||||
when it is hovered. This would be a poor unit test, because if you decide to
|
||||
@@ -353,7 +353,7 @@ For more information:
|
||||
### Accessing `store`, `theme`, routing, browser history, etc.
|
||||
|
||||
The Backstage application has several core providers at its root. To run your
|
||||
test wrapped in a "dummy" Backstage application, you can use our utility
|
||||
test wrapped in a "sample" Backstage application, you can use our utility
|
||||
functions:
|
||||
|
||||
**`wrapInTestApp`**
|
||||
|
||||
@@ -268,7 +268,7 @@ async function main() {
|
||||
```
|
||||
|
||||
This will be run every time you restart the backend. Note that after any change
|
||||
in the URL Reader code, you need to kill the backend and restart, since the
|
||||
in the URL Reader code, you need to stop the backend and restart, since the
|
||||
`reader` instance is memoized and does not update on hot module reloading. Also,
|
||||
there are a lot of unit tests written for the URL Readers, which you can make
|
||||
use of.
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -21,8 +21,8 @@ instance or cluster.
|
||||
With infrastructure defined as code or data (Terraform, AWS CloudFormation,
|
||||
etc.), you may have database credentials which lack permissions to create new
|
||||
databases or you do not have control over the database names. In these
|
||||
instances, you can set the database name and connection information on a per
|
||||
plugin basis as mentioned earlier.
|
||||
instances, you can set the database connection configuration on a [per plugin basis]
|
||||
(#connection-configuration-per-plugin).
|
||||
|
||||
Backstage supports all of these use cases with the `DatabaseManager` provided by
|
||||
`@backstage/backend-common`. We will now cover how to use and configure
|
||||
|
||||
@@ -29,7 +29,7 @@ We started by creating a fork from React Native’s open source project, applyin
|
||||
|
||||
The Backstage Upgrade Helper tool enables adopters to easily upgrade their Backstage app by using the power of git to create a diff between different versions.
|
||||
|
||||
Whenever a new version of Backstage is released, the Helper scaffolds a new dummy Backstage app using the `backstage-create-app` cli utility and checks all the generated files in a specific git branch. After the branch is generated, it gets compared with all the existing ones, which results in generating specific git patches stored in specific files. By selecting the version of the current Backstage release together with the version you want to upgrade to, the UI knows which patch file needs to be picked up.
|
||||
Whenever a new version of Backstage is released, the Helper scaffolds a new sample Backstage app using the `backstage-create-app` cli utility and checks all the generated files in a specific git branch. After the branch is generated, it gets compared with all the existing ones, which results in generating specific git patches stored in specific files. By selecting the version of the current Backstage release together with the version you want to upgrade to, the UI knows which patch file needs to be picked up.
|
||||
|
||||
So, now you can update your Backstage application in three steps rather than manually reading the changelogs of all the Backstage modules in reverse order.
|
||||
|
||||
|
||||
@@ -5,6 +5,6 @@ authorUrl: https://enfuse.io/
|
||||
category: Discovery
|
||||
description: Easily view your Azure Spring Apps service resources
|
||||
documentation: https://github.com/enfuse/asae-backstage-plugin/blob/main/README.md
|
||||
iconUrl: img/azure-spring-apps.png
|
||||
iconUrl: img/enfuse.png
|
||||
npmPackageName: '@enfuse/plugin-azure-spring-apps'
|
||||
addedDate: '2022-11-21'
|
||||
|
||||
@@ -0,0 +1,12 @@
|
||||
---
|
||||
title: BlackDuck
|
||||
author: Deepankumar
|
||||
authorUrl: https://github.com/deepan10
|
||||
category: Security
|
||||
description: BlackDuck scanned vulnerabilities in Backstage.
|
||||
documentation: https://github.com/deepan10/backstage-plugin-blackduck
|
||||
iconUrl: https://avatars.githubusercontent.com/u/431461?s=200&v=4
|
||||
npmPackageName: '@deepan10/backstage-plugin-blackduck'
|
||||
tags:
|
||||
- security
|
||||
addedDate: '2022-12-03'
|
||||
@@ -0,0 +1,13 @@
|
||||
---
|
||||
title: CI/CD Statistics
|
||||
author: Spotify
|
||||
authorUrl: https://github.com/spotify
|
||||
category: CI/CD
|
||||
description: Visualize CI/CD pipeline statistics such as build time or success and error rates.
|
||||
documentation: https://github.com/backstage/backstage/tree/master/plugins/cicd-statistics
|
||||
iconUrl: img/cicd-statistics.svg
|
||||
npmPackageName: '@backstage/plugin-cicd-statistics'
|
||||
tags:
|
||||
- ci
|
||||
- cd
|
||||
addedDate: '2022-01-13'
|
||||
@@ -0,0 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" enable-background="new 0 0 24 24" height="24px" viewBox="0 0 24 24" width="24px" fill="#FFFFFF"><g><rect fill="none" height="24" width="24"/></g><g><g><path d="M21,8c-1.45,0-2.26,1.44-1.93,2.51l-3.55,3.56c-0.3-0.09-0.74-0.09-1.04,0l-2.55-2.55C12.27,10.45,11.46,9,10,9 c-1.45,0-2.27,1.44-1.93,2.52l-4.56,4.55C2.44,15.74,1,16.55,1,18c0,1.1,0.9,2,2,2c1.45,0,2.26-1.44,1.93-2.51l4.55-4.56 c0.3,0.09,0.74,0.09,1.04,0l2.55,2.55C12.73,16.55,13.54,18,15,18c1.45,0,2.27-1.44,1.93-2.52l3.56-3.55 C21.56,12.26,23,11.45,23,10C23,8.9,22.1,8,21,8z"/><polygon points="15,9 15.94,6.93 18,6 15.94,5.07 15,3 14.08,5.07 12,6 14.08,6.93"/><polygon points="3.5,11 4,9 6,8.5 4,8 3.5,6 3,8 1,8.5 3,9"/></g></g></svg>
|
||||
|
After Width: | Height: | Size: 733 B |
+3
-3
@@ -2940,9 +2940,9 @@ __metadata:
|
||||
linkType: hard
|
||||
|
||||
"decode-uri-component@npm:^0.2.0":
|
||||
version: 0.2.0
|
||||
resolution: "decode-uri-component@npm:0.2.0"
|
||||
checksum: f3749344ab9305ffcfe4bfe300e2dbb61fc6359e2b736812100a3b1b6db0a5668cba31a05e4b45d4d63dbf1a18dfa354cd3ca5bb3ededddabb8cd293f4404f94
|
||||
version: 0.2.2
|
||||
resolution: "decode-uri-component@npm:0.2.2"
|
||||
checksum: 95476a7d28f267292ce745eac3524a9079058bbb35767b76e3ee87d42e34cd0275d2eb19d9d08c3e167f97556e8a2872747f5e65cbebcac8b0c98d83e285f139
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
|
||||
+1
-1
@@ -46,7 +46,7 @@
|
||||
"@types/react": "^17",
|
||||
"@types/react-dom": "^17"
|
||||
},
|
||||
"version": "1.9.0-next.0",
|
||||
"version": "1.9.0-next.2",
|
||||
"dependencies": {
|
||||
"@backstage/errors": "workspace:^",
|
||||
"@manypkg/get-packages": "^1.1.3"
|
||||
|
||||
@@ -1,5 +1,27 @@
|
||||
# @backstage/app-defaults
|
||||
|
||||
## 1.0.9-next.2
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies
|
||||
- @backstage/core-plugin-api@1.2.0-next.2
|
||||
- @backstage/core-app-api@1.2.1-next.2
|
||||
- @backstage/core-components@0.12.1-next.2
|
||||
- @backstage/plugin-permission-react@0.4.8-next.2
|
||||
- @backstage/theme@0.2.16
|
||||
|
||||
## 1.0.9-next.1
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies
|
||||
- @backstage/core-app-api@1.2.1-next.1
|
||||
- @backstage/core-components@0.12.1-next.1
|
||||
- @backstage/core-plugin-api@1.1.1-next.1
|
||||
- @backstage/plugin-permission-react@0.4.8-next.1
|
||||
- @backstage/theme@0.2.16
|
||||
|
||||
## 1.0.9-next.0
|
||||
|
||||
### Patch Changes
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "@backstage/app-defaults",
|
||||
"description": "Provides the default wiring of a Backstage App",
|
||||
"version": "1.0.9-next.0",
|
||||
"version": "1.0.9-next.2",
|
||||
"publishConfig": {
|
||||
"access": "public",
|
||||
"main": "dist/index.esm.js",
|
||||
|
||||
@@ -1,5 +1,131 @@
|
||||
# example-app
|
||||
|
||||
## 0.2.78-next.2
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies
|
||||
- @backstage/core-plugin-api@1.2.0-next.2
|
||||
- @backstage/plugin-search-react@1.3.0-next.2
|
||||
- @backstage/plugin-explore@0.3.43-next.2
|
||||
- @backstage/cli@0.21.2-next.2
|
||||
- @backstage/core-app-api@1.2.1-next.2
|
||||
- @backstage/core-components@0.12.1-next.2
|
||||
- @backstage/plugin-catalog-react@1.2.2-next.2
|
||||
- @backstage/plugin-cost-insights@0.12.1-next.2
|
||||
- @backstage/plugin-gcp-projects@0.3.31-next.2
|
||||
- @backstage/plugin-scaffolder@1.9.0-next.2
|
||||
- @backstage/plugin-techdocs-module-addons-contrib@1.0.7-next.2
|
||||
- @backstage/plugin-catalog-graph@0.2.24-next.2
|
||||
- @backstage/plugin-search-common@1.2.0-next.2
|
||||
- @backstage/plugin-api-docs@0.8.12-next.2
|
||||
- @internal/plugin-catalog-customized@0.0.5-next.2
|
||||
- @backstage/app-defaults@1.0.9-next.2
|
||||
- @backstage/integration-react@1.1.7-next.2
|
||||
- @backstage/plugin-airbrake@0.3.12-next.2
|
||||
- @backstage/plugin-apache-airflow@0.2.5-next.2
|
||||
- @backstage/plugin-azure-devops@0.2.3-next.2
|
||||
- @backstage/plugin-azure-sites@0.1.1-next.2
|
||||
- @backstage/plugin-badges@0.2.36-next.2
|
||||
- @backstage/plugin-catalog-import@0.9.2-next.2
|
||||
- @backstage/plugin-circleci@0.3.12-next.2
|
||||
- @backstage/plugin-cloudbuild@0.3.12-next.2
|
||||
- @backstage/plugin-code-coverage@0.2.5-next.2
|
||||
- @backstage/plugin-dynatrace@1.0.2-next.2
|
||||
- @backstage/plugin-gcalendar@0.3.8-next.2
|
||||
- @backstage/plugin-github-actions@0.5.12-next.2
|
||||
- @backstage/plugin-gocd@0.1.18-next.2
|
||||
- @backstage/plugin-graphiql@0.2.44-next.2
|
||||
- @backstage/plugin-home@0.4.28-next.2
|
||||
- @backstage/plugin-jenkins@0.7.11-next.2
|
||||
- @backstage/plugin-kafka@0.3.12-next.2
|
||||
- @backstage/plugin-kubernetes@0.7.5-next.2
|
||||
- @backstage/plugin-lighthouse@0.3.12-next.2
|
||||
- @backstage/plugin-newrelic@0.3.30-next.2
|
||||
- @backstage/plugin-newrelic-dashboard@0.2.5-next.2
|
||||
- @backstage/plugin-org@0.6.2-next.2
|
||||
- @backstage/plugin-pagerduty@0.5.5-next.2
|
||||
- @backstage/plugin-permission-react@0.4.8-next.2
|
||||
- @backstage/plugin-playlist@0.1.3-next.2
|
||||
- @backstage/plugin-rollbar@0.4.12-next.2
|
||||
- @backstage/plugin-search@1.0.5-next.2
|
||||
- @backstage/plugin-sentry@0.4.5-next.2
|
||||
- @backstage/plugin-shortcuts@0.3.4-next.2
|
||||
- @backstage/plugin-stack-overflow@0.1.8-next.2
|
||||
- @backstage/plugin-tech-insights@0.3.4-next.2
|
||||
- @backstage/plugin-tech-radar@0.5.19-next.2
|
||||
- @backstage/plugin-techdocs@1.4.1-next.2
|
||||
- @backstage/plugin-techdocs-react@1.0.7-next.2
|
||||
- @backstage/plugin-todo@0.2.14-next.2
|
||||
- @backstage/plugin-user-settings@0.6.0-next.2
|
||||
- @backstage/catalog-model@1.1.4-next.1
|
||||
- @backstage/config@1.0.5-next.1
|
||||
- @backstage/theme@0.2.16
|
||||
- @backstage/plugin-catalog-common@1.0.9-next.2
|
||||
|
||||
## 0.2.78-next.1
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies
|
||||
- @backstage/core-app-api@1.2.1-next.1
|
||||
- @backstage/core-components@0.12.1-next.1
|
||||
- @backstage/plugin-cloudbuild@0.3.12-next.1
|
||||
- @backstage/plugin-gcp-projects@0.3.31-next.1
|
||||
- @backstage/plugin-github-actions@0.5.12-next.1
|
||||
- @backstage/plugin-graphiql@0.2.44-next.1
|
||||
- @backstage/plugin-techdocs@1.4.1-next.1
|
||||
- @backstage/plugin-cost-insights@0.12.1-next.1
|
||||
- @backstage/plugin-search-react@1.2.2-next.1
|
||||
- @backstage/plugin-stack-overflow@0.1.8-next.1
|
||||
- @backstage/cli@0.21.2-next.1
|
||||
- @backstage/plugin-org@0.6.2-next.1
|
||||
- @backstage/core-plugin-api@1.1.1-next.1
|
||||
- @backstage/plugin-catalog-react@1.2.2-next.1
|
||||
- @backstage/plugin-scaffolder@1.9.0-next.1
|
||||
- @backstage/plugin-shortcuts@0.3.4-next.1
|
||||
- @backstage/plugin-user-settings@0.6.0-next.1
|
||||
- @backstage/plugin-explore@0.3.43-next.1
|
||||
- @backstage/app-defaults@1.0.9-next.1
|
||||
- @backstage/plugin-apache-airflow@0.2.5-next.1
|
||||
- @backstage/plugin-api-docs@0.8.12-next.1
|
||||
- @backstage/plugin-azure-devops@0.2.3-next.1
|
||||
- @backstage/plugin-azure-sites@0.1.1-next.1
|
||||
- @backstage/plugin-badges@0.2.36-next.1
|
||||
- @backstage/plugin-catalog-graph@0.2.24-next.1
|
||||
- @backstage/plugin-catalog-import@0.9.2-next.1
|
||||
- @backstage/plugin-circleci@0.3.12-next.1
|
||||
- @backstage/plugin-code-coverage@0.2.5-next.1
|
||||
- @backstage/plugin-dynatrace@1.0.2-next.1
|
||||
- @backstage/plugin-gcalendar@0.3.8-next.1
|
||||
- @backstage/plugin-gocd@0.1.18-next.1
|
||||
- @backstage/plugin-home@0.4.28-next.1
|
||||
- @backstage/plugin-jenkins@0.7.11-next.1
|
||||
- @backstage/plugin-kafka@0.3.12-next.1
|
||||
- @backstage/plugin-kubernetes@0.7.5-next.1
|
||||
- @backstage/plugin-lighthouse@0.3.12-next.1
|
||||
- @backstage/plugin-newrelic@0.3.30-next.1
|
||||
- @backstage/plugin-pagerduty@0.5.5-next.1
|
||||
- @backstage/plugin-playlist@0.1.3-next.1
|
||||
- @backstage/plugin-rollbar@0.4.12-next.1
|
||||
- @backstage/plugin-search@1.0.5-next.1
|
||||
- @backstage/plugin-sentry@0.4.5-next.1
|
||||
- @backstage/plugin-tech-insights@0.3.4-next.1
|
||||
- @backstage/plugin-tech-radar@0.5.19-next.1
|
||||
- @backstage/plugin-techdocs-module-addons-contrib@1.0.7-next.1
|
||||
- @backstage/plugin-todo@0.2.14-next.1
|
||||
- @backstage/integration-react@1.1.7-next.1
|
||||
- @backstage/plugin-airbrake@0.3.12-next.1
|
||||
- @backstage/plugin-newrelic-dashboard@0.2.5-next.1
|
||||
- @backstage/plugin-techdocs-react@1.0.7-next.1
|
||||
- @internal/plugin-catalog-customized@0.0.5-next.1
|
||||
- @backstage/config@1.0.5-next.1
|
||||
- @backstage/plugin-permission-react@0.4.8-next.1
|
||||
- @backstage/catalog-model@1.1.4-next.1
|
||||
- @backstage/theme@0.2.16
|
||||
- @backstage/plugin-catalog-common@1.0.9-next.1
|
||||
- @backstage/plugin-search-common@1.1.2-next.1
|
||||
|
||||
## 0.2.78-next.0
|
||||
|
||||
### Patch Changes
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "example-app",
|
||||
"version": "0.2.78-next.0",
|
||||
"version": "0.2.78-next.2",
|
||||
"private": true,
|
||||
"backstage": {
|
||||
"role": "frontend"
|
||||
@@ -80,7 +80,7 @@
|
||||
"react-router": "^6.3.0",
|
||||
"react-router-dom": "^6.3.0",
|
||||
"react-use": "^17.2.4",
|
||||
"zen-observable": "^0.9.0"
|
||||
"zen-observable": "^0.10.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@backstage/test-utils": "workspace:^",
|
||||
|
||||
@@ -280,7 +280,7 @@ const routes = (
|
||||
|
||||
const App = () => (
|
||||
<AppProvider>
|
||||
<AlertDisplay />
|
||||
<AlertDisplay transientTimeoutMs={2500} />
|
||||
<OAuthRequestDialog />
|
||||
<AppRouter>
|
||||
<Root>{routes}</Root>
|
||||
|
||||
@@ -25,6 +25,7 @@ import {
|
||||
Paper,
|
||||
useTheme,
|
||||
} from '@material-ui/core';
|
||||
import BuildIcon from '@material-ui/icons/Build';
|
||||
import LaunchIcon from '@material-ui/icons/Launch';
|
||||
import {
|
||||
CatalogIcon,
|
||||
@@ -38,6 +39,7 @@ import {
|
||||
catalogApiRef,
|
||||
CATALOG_FILTER_EXISTS,
|
||||
} from '@backstage/plugin-catalog-react';
|
||||
import { ToolSearchResultListItem } from '@backstage/plugin-explore';
|
||||
import { searchPlugin, SearchType } from '@backstage/plugin-search';
|
||||
import {
|
||||
DefaultResultListItem,
|
||||
@@ -110,6 +112,10 @@ export const SearchModal = ({ toggleModal }: { toggleModal: () => void }) => {
|
||||
value: 'techdocs',
|
||||
name: 'Documentation',
|
||||
},
|
||||
{
|
||||
value: 'tools',
|
||||
name: 'Tools',
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</Grid>
|
||||
@@ -209,6 +215,17 @@ export const SearchModal = ({ toggleModal }: { toggleModal: () => void }) => {
|
||||
/>
|
||||
);
|
||||
break;
|
||||
case 'tools':
|
||||
resultItem = (
|
||||
<ToolSearchResultListItem
|
||||
icon={<BuildIcon />}
|
||||
key={document.location}
|
||||
result={document}
|
||||
highlight={highlight}
|
||||
rank={rank}
|
||||
/>
|
||||
);
|
||||
break;
|
||||
default:
|
||||
resultItem = (
|
||||
<DefaultResultListItem
|
||||
|
||||
@@ -41,6 +41,8 @@ import {
|
||||
import { TechDocsSearchResultListItem } from '@backstage/plugin-techdocs';
|
||||
import { Grid, List, makeStyles, Paper, Theme } from '@material-ui/core';
|
||||
import React from 'react';
|
||||
import { ToolSearchResultListItem } from '@backstage/plugin-explore';
|
||||
import BuildIcon from '@material-ui/icons/Build';
|
||||
|
||||
const useStyles = makeStyles((theme: Theme) => ({
|
||||
bar: {
|
||||
@@ -155,6 +157,16 @@ const SearchPage = () => {
|
||||
rank={rank}
|
||||
/>
|
||||
);
|
||||
case 'tools':
|
||||
return (
|
||||
<ToolSearchResultListItem
|
||||
icon={<BuildIcon />}
|
||||
key={document.location}
|
||||
result={document}
|
||||
highlight={highlight}
|
||||
rank={rank}
|
||||
/>
|
||||
);
|
||||
default:
|
||||
return (
|
||||
<DefaultResultListItem
|
||||
|
||||
@@ -1,5 +1,28 @@
|
||||
# @backstage/backend-app-api
|
||||
|
||||
## 0.2.4-next.2
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- 884d749b14: Refactored to use `coreServices` from `@backstage/backend-plugin-api`.
|
||||
- Updated dependencies
|
||||
- @backstage/backend-common@0.17.0-next.2
|
||||
- @backstage/backend-plugin-api@0.2.0-next.2
|
||||
- @backstage/backend-tasks@0.4.0-next.2
|
||||
- @backstage/plugin-permission-node@0.7.2-next.2
|
||||
- @backstage/errors@1.1.4-next.1
|
||||
|
||||
## 0.2.4-next.1
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies
|
||||
- @backstage/backend-common@0.17.0-next.1
|
||||
- @backstage/backend-tasks@0.4.0-next.1
|
||||
- @backstage/backend-plugin-api@0.1.5-next.1
|
||||
- @backstage/plugin-permission-node@0.7.2-next.1
|
||||
- @backstage/errors@1.1.4-next.1
|
||||
|
||||
## 0.2.4-next.0
|
||||
|
||||
### Patch Changes
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "@backstage/backend-app-api",
|
||||
"description": "Core API used by Backstage backend apps",
|
||||
"version": "0.2.4-next.0",
|
||||
"version": "0.2.4-next.2",
|
||||
"main": "src/index.ts",
|
||||
"types": "src/index.ts",
|
||||
"publishConfig": {
|
||||
|
||||
@@ -16,18 +16,16 @@
|
||||
|
||||
import { CacheManager } from '@backstage/backend-common';
|
||||
import {
|
||||
configServiceRef,
|
||||
coreServices,
|
||||
createServiceFactory,
|
||||
pluginMetadataServiceRef,
|
||||
cacheServiceRef,
|
||||
} from '@backstage/backend-plugin-api';
|
||||
|
||||
/** @public */
|
||||
export const cacheFactory = createServiceFactory({
|
||||
service: cacheServiceRef,
|
||||
service: coreServices.cache,
|
||||
deps: {
|
||||
config: configServiceRef,
|
||||
plugin: pluginMetadataServiceRef,
|
||||
config: coreServices.config,
|
||||
plugin: coreServices.pluginMetadata,
|
||||
},
|
||||
async factory({ config }) {
|
||||
const cacheManager = CacheManager.fromConfig(config);
|
||||
|
||||
@@ -16,17 +16,16 @@
|
||||
|
||||
import { loadBackendConfig } from '@backstage/backend-common';
|
||||
import {
|
||||
configServiceRef,
|
||||
coreServices,
|
||||
createServiceFactory,
|
||||
loggerToWinstonLogger,
|
||||
rootLoggerServiceRef,
|
||||
} from '@backstage/backend-plugin-api';
|
||||
|
||||
/** @public */
|
||||
export const configFactory = createServiceFactory({
|
||||
service: configServiceRef,
|
||||
service: coreServices.config,
|
||||
deps: {
|
||||
logger: rootLoggerServiceRef,
|
||||
logger: coreServices.rootLogger,
|
||||
},
|
||||
async factory({ logger }) {
|
||||
const config = await loadBackendConfig({
|
||||
|
||||
@@ -16,18 +16,16 @@
|
||||
|
||||
import { DatabaseManager } from '@backstage/backend-common';
|
||||
import {
|
||||
configServiceRef,
|
||||
coreServices,
|
||||
createServiceFactory,
|
||||
databaseServiceRef,
|
||||
pluginMetadataServiceRef,
|
||||
} from '@backstage/backend-plugin-api';
|
||||
|
||||
/** @public */
|
||||
export const databaseFactory = createServiceFactory({
|
||||
service: databaseServiceRef,
|
||||
service: coreServices.database,
|
||||
deps: {
|
||||
config: configServiceRef,
|
||||
plugin: pluginMetadataServiceRef,
|
||||
config: coreServices.config,
|
||||
plugin: coreServices.pluginMetadata,
|
||||
},
|
||||
async factory({ config }) {
|
||||
const databaseManager = DatabaseManager.fromConfig(config);
|
||||
|
||||
@@ -16,16 +16,15 @@
|
||||
|
||||
import { SingleHostDiscovery } from '@backstage/backend-common';
|
||||
import {
|
||||
configServiceRef,
|
||||
coreServices,
|
||||
createServiceFactory,
|
||||
discoveryServiceRef,
|
||||
} from '@backstage/backend-plugin-api';
|
||||
|
||||
/** @public */
|
||||
export const discoveryFactory = createServiceFactory({
|
||||
service: discoveryServiceRef,
|
||||
service: coreServices.discovery,
|
||||
deps: {
|
||||
config: configServiceRef,
|
||||
config: coreServices.config,
|
||||
},
|
||||
async factory({ config }) {
|
||||
const discovery = SingleHostDiscovery.fromConfig(config);
|
||||
|
||||
@@ -16,9 +16,7 @@
|
||||
|
||||
import {
|
||||
createServiceFactory,
|
||||
httpRouterServiceRef,
|
||||
configServiceRef,
|
||||
pluginMetadataServiceRef,
|
||||
coreServices,
|
||||
} from '@backstage/backend-plugin-api';
|
||||
import Router from 'express-promise-router';
|
||||
import { Handler } from 'express';
|
||||
@@ -36,10 +34,10 @@ export type HttpRouterFactoryOptions = {
|
||||
|
||||
/** @public */
|
||||
export const httpRouterFactory = createServiceFactory({
|
||||
service: httpRouterServiceRef,
|
||||
service: coreServices.httpRouter,
|
||||
deps: {
|
||||
config: configServiceRef,
|
||||
plugin: pluginMetadataServiceRef,
|
||||
config: coreServices.config,
|
||||
plugin: coreServices.pluginMetadata,
|
||||
},
|
||||
async factory({ config }, options?: HttpRouterFactoryOptions) {
|
||||
const defaultPluginId = options?.indexPlugin ?? 'app';
|
||||
|
||||
@@ -16,10 +16,8 @@
|
||||
import {
|
||||
BackendLifecycle,
|
||||
createServiceFactory,
|
||||
lifecycleServiceRef,
|
||||
coreServices,
|
||||
loggerToWinstonLogger,
|
||||
pluginMetadataServiceRef,
|
||||
rootLoggerServiceRef,
|
||||
BackendLifecycleShutdownHook,
|
||||
} from '@backstage/backend-plugin-api';
|
||||
import { Logger } from 'winston';
|
||||
@@ -80,10 +78,10 @@ class PluginScopedLifecycleImpl implements BackendLifecycle {
|
||||
* Allows plugins to register shutdown hooks that are run when the process is about to exit.
|
||||
* @public */
|
||||
export const lifecycleFactory = createServiceFactory({
|
||||
service: lifecycleServiceRef,
|
||||
service: coreServices.lifecycle,
|
||||
deps: {
|
||||
logger: rootLoggerServiceRef,
|
||||
plugin: pluginMetadataServiceRef,
|
||||
logger: coreServices.rootLogger,
|
||||
plugin: coreServices.pluginMetadata,
|
||||
},
|
||||
async factory({ logger }) {
|
||||
const rootLifecycle = new BackendLifecycleImpl(
|
||||
|
||||
@@ -16,17 +16,15 @@
|
||||
|
||||
import {
|
||||
createServiceFactory,
|
||||
loggerServiceRef,
|
||||
pluginMetadataServiceRef,
|
||||
rootLoggerServiceRef,
|
||||
coreServices,
|
||||
} from '@backstage/backend-plugin-api';
|
||||
|
||||
/** @public */
|
||||
export const loggerFactory = createServiceFactory({
|
||||
service: loggerServiceRef,
|
||||
service: coreServices.logger,
|
||||
deps: {
|
||||
rootLogger: rootLoggerServiceRef,
|
||||
plugin: pluginMetadataServiceRef,
|
||||
rootLogger: coreServices.rootLogger,
|
||||
plugin: coreServices.pluginMetadata,
|
||||
},
|
||||
async factory({ rootLogger }) {
|
||||
return async ({ plugin }) => {
|
||||
|
||||
@@ -15,21 +15,18 @@
|
||||
*/
|
||||
|
||||
import {
|
||||
configServiceRef,
|
||||
coreServices,
|
||||
createServiceFactory,
|
||||
discoveryServiceRef,
|
||||
permissionsServiceRef,
|
||||
tokenManagerServiceRef,
|
||||
} from '@backstage/backend-plugin-api';
|
||||
import { ServerPermissionClient } from '@backstage/plugin-permission-node';
|
||||
|
||||
/** @public */
|
||||
export const permissionsFactory = createServiceFactory({
|
||||
service: permissionsServiceRef,
|
||||
service: coreServices.permissions,
|
||||
deps: {
|
||||
config: configServiceRef,
|
||||
discovery: discoveryServiceRef,
|
||||
tokenManager: tokenManagerServiceRef,
|
||||
config: coreServices.config,
|
||||
discovery: coreServices.discovery,
|
||||
tokenManager: coreServices.tokenManager,
|
||||
},
|
||||
async factory({ config }) {
|
||||
return async ({ discovery, tokenManager }) => {
|
||||
|
||||
@@ -18,7 +18,7 @@ import { createRootLogger } from '@backstage/backend-common';
|
||||
import {
|
||||
createServiceFactory,
|
||||
Logger,
|
||||
rootLoggerServiceRef,
|
||||
coreServices,
|
||||
} from '@backstage/backend-plugin-api';
|
||||
import { Logger as WinstonLogger } from 'winston';
|
||||
|
||||
@@ -40,7 +40,7 @@ class BackstageLogger implements Logger {
|
||||
|
||||
/** @public */
|
||||
export const rootLoggerFactory = createServiceFactory({
|
||||
service: rootLoggerServiceRef,
|
||||
service: coreServices.rootLogger,
|
||||
deps: {},
|
||||
async factory() {
|
||||
return BackstageLogger.fromWinston(createRootLogger());
|
||||
|
||||
@@ -15,19 +15,17 @@
|
||||
*/
|
||||
|
||||
import {
|
||||
configServiceRef,
|
||||
coreServices,
|
||||
createServiceFactory,
|
||||
pluginMetadataServiceRef,
|
||||
schedulerServiceRef,
|
||||
} from '@backstage/backend-plugin-api';
|
||||
import { TaskScheduler } from '@backstage/backend-tasks';
|
||||
|
||||
/** @public */
|
||||
export const schedulerFactory = createServiceFactory({
|
||||
service: schedulerServiceRef,
|
||||
service: coreServices.scheduler,
|
||||
deps: {
|
||||
config: configServiceRef,
|
||||
plugin: pluginMetadataServiceRef,
|
||||
config: coreServices.config,
|
||||
plugin: coreServices.pluginMetadata,
|
||||
},
|
||||
async factory({ config }) {
|
||||
const taskScheduler = TaskScheduler.fromConfig(config);
|
||||
|
||||
@@ -15,20 +15,18 @@
|
||||
*/
|
||||
|
||||
import {
|
||||
configServiceRef,
|
||||
loggerServiceRef,
|
||||
coreServices,
|
||||
createServiceFactory,
|
||||
tokenManagerServiceRef,
|
||||
loggerToWinstonLogger,
|
||||
} from '@backstage/backend-plugin-api';
|
||||
import { ServerTokenManager } from '@backstage/backend-common';
|
||||
|
||||
/** @public */
|
||||
export const tokenManagerFactory = createServiceFactory({
|
||||
service: tokenManagerServiceRef,
|
||||
service: coreServices.tokenManager,
|
||||
deps: {
|
||||
config: configServiceRef,
|
||||
logger: loggerServiceRef,
|
||||
config: coreServices.config,
|
||||
logger: coreServices.logger,
|
||||
},
|
||||
async factory() {
|
||||
return async ({ config, logger }) => {
|
||||
|
||||
@@ -16,19 +16,17 @@
|
||||
|
||||
import { UrlReaders } from '@backstage/backend-common';
|
||||
import {
|
||||
configServiceRef,
|
||||
coreServices,
|
||||
createServiceFactory,
|
||||
loggerServiceRef,
|
||||
loggerToWinstonLogger,
|
||||
urlReaderServiceRef,
|
||||
} from '@backstage/backend-plugin-api';
|
||||
|
||||
/** @public */
|
||||
export const urlReaderFactory = createServiceFactory({
|
||||
service: urlReaderServiceRef,
|
||||
service: coreServices.urlReader,
|
||||
deps: {
|
||||
config: configServiceRef,
|
||||
logger: loggerServiceRef,
|
||||
config: coreServices.config,
|
||||
logger: coreServices.logger,
|
||||
},
|
||||
async factory() {
|
||||
return async ({ config, logger }) => {
|
||||
|
||||
@@ -18,7 +18,7 @@ import {
|
||||
createServiceRef,
|
||||
createServiceFactory,
|
||||
ServiceRef,
|
||||
pluginMetadataServiceRef,
|
||||
coreServices,
|
||||
} from '@backstage/backend-plugin-api';
|
||||
import { ServiceRegistry } from './ServiceRegistry';
|
||||
|
||||
@@ -172,7 +172,7 @@ describe('ServiceRegistry', () => {
|
||||
const ref = createServiceRef<{ pluginId: string }>({ id: 'x' });
|
||||
const factory = createServiceFactory({
|
||||
service: ref,
|
||||
deps: { meta: pluginMetadataServiceRef },
|
||||
deps: { meta: coreServices.pluginMetadata },
|
||||
async factory() {
|
||||
return async ({ meta }) => ({ pluginId: meta.getId() });
|
||||
},
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user