docs/releases/v1.5.0-changelog.md
backend-defaults package carrying createBackend which was previously exported from backend-app-api.
The backend-app-api package now exports the createSpecializedBacked that does not add any service factories by default.UrlReader for Bitbucket Serverforce and remoteRef option to push method in git actions
addRemote and deleteRemote methods to git actionsfc8a5f797b: Improve scm/git wrapper around isomorphic-git library :
checkout function,remoteRef parameter in the push function.5e4dc173f7: Added a second validation to the dir() method of ZIP archive responses returned from readTree() that ensures that extracted files do not fall outside the target directory.
1732a18a7a: Exported redactLogLine function to be able to use it in custom loggers and renamed it to redactWinstonLogLine.
3b7930b3e5: Add support for Bearer Authorization header / token-based auth at Git commands.
cfa078e255: The ZipArchiveResponse now correctly handles corrupt ZIP archives.
Before this change, certain corrupt ZIP archives either cause the inflater to throw (as expected), or will hang the parser indefinitely.
By switching out the zip parsing library, we now write to a temporary directory, and load from disk which should ensure that the parsing of the .zip files are done correctly because streaming of zip paths is technically impossible without being able to parse the headers at the end of the file.
770d3f92c4: The config prop ensureExists now applies to schema creation when pluginDivisionMode is set to schema. This means schemas will no longer accidentally be automatically created when ensureExists is set to false.
29f782eb37: Updated dependency @types/luxon to ^3.0.0.
Updated dependencies
backend-defaults package carrying createBackend which was previously exported from backend-app-api.
The backend-app-api package now exports the createSpecializedBacked that does not add any service factories by default.to prop of Button and Link more strict, only supporting plain strings. It used to be the case that this prop was unexpectedly too liberal, making it look like we supported the complex react-router-dom object form of the parameter as well, which led to unexpected results at runtime.className prop to the MarkdownContent componentgetBitbucketDownloadUrl@types/luxon to ^3.0.0./-/ scope would result in a fetch URL that did not support
private-token-based authentication.--docker-option to allow passing additional options to the docker run command executed my serve and serve:mkdocs.bfc7c50a09: Display associated entity as a chip in AdrSearchResultListItem
BREAKING: AdrDocument now includes a entityRef property, if you have a custom AdrParser you will have to supply this property in your returned documents
bfc7c50a09: Display associated entity as a chip in AdrSearchResultListItem
BREAKING: AdrDocument now includes a entityRef property, if you have a custom AdrParser you will have to supply this property in your returned documents
bfc7c50a09: Display associated entity as a chip in AdrSearchResultListItem
BREAKING: AdrDocument now includes a entityRef property, if you have a custom AdrParser you will have to supply this property in your returned documents
80da5162c7: Plugin catalog has been modified to use an experimental feature where you can customize the title of the create button.
You can modify it by doing:
import { catalogPlugin } from '@backstage/plugin-catalog';
catalogPlugin.__experimentalReconfigure({
createButtonTitle: 'New',
});
fe94398418: Allow changing the subtitle of the CatalogTable component
f7607f9d85: Add new plugin catalog-backend-module-bitbucket-server which adds the BitbucketServerEntityProvider.
The entity provider is meant as a replacement for the BitbucketDiscoveryProcessor to be used with Bitbucket Server (Bitbucket Cloud already has a replacement).
Before:
// packages/backend/src/plugins/catalog.ts
builder.addProcessor(
BitbucketDiscoveryProcessor.fromConfig(env.config, { logger: env.logger }),
);
# app-config.yaml
catalog:
locations:
- type: bitbucket-discovery
target: 'https://bitbucket.mycompany.com/projects/*/repos/*/catalog-info.yaml
After:
// packages/backend/src/plugins/catalog.ts
builder.addEntityProvider(
BitbucketServerEntityProvider.fromConfig(env.config, {
logger: env.logger,
schedule: env.scheduler.createScheduledTaskRunner({
frequency: { minutes: 30 },
timeout: { minutes: 3 },
}),
}),
);
# app-config.yaml
catalog:
providers:
bitbucketServer:
yourProviderId: # identifies your ingested dataset
catalogPath: /catalog-info.yaml # default value
filters: # optional
projectKey: '.*' # optional; RegExp
repoSlug: '.*' # optional; RegExp
@spotify/prettier-config to ^14.0.0.next scaffolder pluginnext scaffolder pluginpublish:gitlab:merge-request action to allow commit updates and deletesreviewers and teamReviewers parameters to publish:github:pull-request action to add reviewers on the pull request created by the actionpublish:gerrit:review scaffolder actionpublish:file action has been deprecated in favor of testing templates using the template editor instead. Note that this action is not and was never been installed by default.Authorization header is passed to POST /v2/tasksres.end() in scaffolder backend EventStream usage5b769fddb5: Internal observable replaced with a mapping from the storage API. This fixes shortcuts initialization when using firestore.
ShortcutApi.get method, that returns an immediate snapshot of shortcuts, made public.
Example of how to get and observe shortcuts:
const shortcutApi = useApi(shortcutsApiRef);
const shortcuts = useObservable(shortcutApi.shortcut$(), shortcutApi.get());
619b515172: BREAKING This plugin now call the sonarqube-backend plugin instead of relying on the proxy plugin
The whole proxy's '/sonarqube': key can be removed from your configuration files.
Then head to the README in sonarqube-backend plugin page to learn how to set-up the link to your Sonarqube instances.
catalog-info.yaml filec8196bd37d: Fix AWS S3 404 NotFound error
When reading an object from the S3 bucket through a stream, the aws-sdk getObject() API may throw a 404 NotFound Error with no error message or, in fact, any sort of HTTP-layer error responses. These fail the @backstage/error's assertError() checks, so they must be wrapped. The test for this case was also updated to match the wrapped error message.
f833344611: Bump default TechDocs image to v1.1.0, see the release here.
Updated dependencies
createBackendPlugin and createBackendModule no longer require a parameter to be passed if the options are optional.@types/luxon to ^3.0.0..eslintrc.* files, not just .eslintrc.js.NODE_ENV was not set in the environment when starting the backend in development mode. It has always been the case that Webpack transformed NODE_ENV when running in development mode, but this did not affect dependencies in node_modules as they are treated as external.yarn backstage-cli info command.json and .wasm files to the Webpack configuration in order to match defaults.@svgr/* to 6.3.x.80da5162c7: Introduced a new experimental feature that allows you to declare plugin-wide options for your plugin by defining
__experimentalConfigure in your createPlugin options. See https://backstage.io/docs/plugins/customization.md for more information.
This is an experimental feature and it will have breaking changes in the future.
87649a06bf: Add a note that the fetchApi utility should not be used on sign-in page implementations and similar.
73cee58fc2: Bumped create-app version.
f762386d48: Bumped create-app version.
b162bbf464: Bumped create-app version.
db76fc6255: The better-sqlite3 dependency has been moved back to production "dependencies" in packages/backend/package.json, with instructions in the Dockerfile to move it to "devDependencies" if desired. There is no need to apply this change to existing apps, unless you want your production image to have SQLite available as a database option.
ab9edd8b58: Updated backend to write stack trace when the backend fails to start up.
To apply this change to your Backstage installation, make the following change to packages/backend/src/index.ts
cors:
origin: http://localhost:3000
- console.error(`Backend failed to start up, ${error}`);
+ console.error('Backend failed to start up', error);
0174a0a022: Add PATCH and HEAD to the Access-Control-Allow-Methods.
To apply this change to your Backstage installation make the following change to your app-config.yaml
cors:
origin: http://localhost:3000
- methods: [GET, POST, PUT, DELETE]
+ methods: [GET, POST, PUT, DELETE, PATCH, HEAD]
@asyncapi/react-component to 1.0.0-next.40.@google-cloud/firestore to ^6.0.0.56e1b4b89c: Fixed typos in alpha types.
e3d3018531: Fix issue for conditional decisions based on properties stored as arrays, like tags.
Before this change, having a permission policy returning conditional decisions based on metadata like tags, such like createCatalogConditionalDecision(permission, catalogConditions.hasMetadata('tags', 'java'),), was producing wrong results. The issue occurred when authorizing entities already loaded from the database, for example when authorizing catalogEntityDeletePermission.
059ae348b4: Use the non-deprecated form of table.unique in knex
Updated dependencies
17d45dbf10: Deprecate AwsS3DiscoveryProcessor in favor of AwsS3EntityProvider (since v0.1.4).
You can find a migration guide at the release notes for v0.1.4.
Updated dependencies
f48950e34b: Github Entity Provider functionality for adding entities to the catalog.
This provider replaces the GithubDiscoveryProcessor functionality as providers offer more flexibility with scheduling ingestion, removing and preventing orphaned entities.
More information can be found on the GitHub Discovery page.
c59d1ce487: Fixed bug where repository filter was including all archived repositories
97f0a37378: Improved support for wildcards in catalogPath
Updated dependencies
24979413a4: Enhancing GitLab provider with filtering projects by pattern RegExp
providers:
gitlab:
stg:
host: gitlab.stg.company.io
branch: main
projectPattern: 'john/' # new option
entityFilename: template.yaml
With the aforementioned parameter you can filter projects, and keep only who belongs to the namespace "john".
Updated dependencies
b50e8e533b: Add an $openapi placeholder resolver that supports more use cases for resolving $ref instances. This means that the quite recently added OpenApiRefProcessor has been deprecated in favor of the openApiPlaceholderResolver.
An example of how to use it can be seen below.
apiVersion: backstage.io/v1alpha1
kind: API
metadata:
name: example
description: Example API
spec:
type: openapi
lifecycle: production
owner: team
definition:
$openapi: ./spec/openapi.yaml # by using $openapi Backstage will now resolve all $ref instances
Updated dependencies
@graphql-tools/schema to ^9.0.0.@types/luxon to ^3.0.0.@types/luxon to ^3.0.0.products field optional in the configCostOverviewCard@types/luxon to ^3.0.0.@graphql-tools/schema to ^9.0.0.@hourly or @daily instead of standard cron syntax.DaemonSets to the default kubernetes resources.customResources field to the ClusterDetails interface, in order to specify (override) custom resources per cluster@types/luxon to ^3.0.0.DaemonSets to the default kubernetes resources.@types/luxon to ^3.0.0.@types/luxon to ^3.0.0.@types/luxon to ^3.0.0.@types/luxon to ^3.0.0.@types/luxon to ^3.0.0.toLowerEntityRefMaybe() helper function for handling techdocs.legacyUseCaseSensitiveTripletPaths flag.
Pass modified entityRef to TechDocsReaderPageContext to handle the techdocs.legacyUseCaseSensitiveTripletPaths flag.@types/luxon to ^3.0.0.