docs/releases/v1.35.0-next.1-changelog.md
Upgrade Helper: https://backstage.github.io/upgrade-helper/?to=1.35.0-next.1
node-fetch for gitlabrestrictUsersToGroup should use the entire group path when getting membersincludeArchivedRepos property, which allows including repositories when the project is archived.includeArchivedRepos property, which allows including repositories when the project is archived./alpha export is now also available via the main entry point, which means that you can remove the /alpha suffix from the import.53b24d9: Internal update to use the new cache manager
0476be3: Add the relations array to allow Backstage to mirror GitLab's membership behavior, including descendant, inherited, and shared-from-group memberships.
The previous allowInherited config option will be deprecated in future versions. Use the relations array with the INHERITED option instead.
catalog:
providers:
gitlab:
development:
relations:
- INHERITED
d425fc4: Modules, plugins, and services are now BackendFeature, not a function that returns a feature.
b446954: Remove dependency on backend-common
06cc084: Added a includeUsersWithoutSeat config option that allow import of users without a paid seat, e.g. for Gitlab Free on SaaS. Defaults to false
Updated dependencies
0476be3: Add the relations array to allow Backstage to mirror GitLab's membership behavior, including descendant, inherited, and shared-from-group memberships.
The previous allowInherited config option will be deprecated in future versions. Use the relations array with the INHERITED option instead.
catalog:
providers:
gitlab:
development:
relations:
- INHERITED
Updated dependencies
BackendFeature, not a function that returns a feature.@backstage/backend-tasks as it will be deleted in near future.excludeRepos configuration option to the Gitlab catalog provider.excludeRepos configuration option to the Gitlab catalog provider.catalog.providers.gitlab.<your-org>.restrictUsersToGroup. Setting this to true will make Backstage only import users from the group defined in the group key, instead of all users in the organisation (self-hosted) or of the root group (SaaS). It will default to false, keeping the original implementation intact, when not explicitly set.catalog.providers.gitlab.<your-org>.restrictUsersToGroup. Setting this to true will make Backstage only import users from the group defined in the group key, instead of all users in the organisation (self-hosted) or of the root group (SaaS). It will default to false, keeping the original implementation intact, when not explicitly set.BackendFeature contract change.package.json.GitlabOrgDiscoveryEntityProvider where a missing orgEnabled config key was throwing an error.GitlabDiscoveryEntityProvider where the fallback branch was taking precedence over the GitLab default branch.package.json.GitlabOrgDiscoveryEntityProvider where a missing orgEnabled config key was throwing an error.GitlabDiscoveryEntityProvider where the fallback branch was taking precedence over the GitLab default branch.GitlabDiscoveryEntityProvider and GitlabOrgDiscoveryEntityProvider.GitlabDiscoveryEntityProvider and GitlabOrgDiscoveryEntityProvider.LoggerServiceuuid to ^9.0.0.
Updated dependency @types/uuid to ^9.0.0.visibility to group entity annotations.visibility to group entity annotations.uuid to ^9.0.0.
Updated dependency @types/uuid to ^9.0.0.groupTransformer, userTransformer and groupNameTransformer to allow custom transformations of groups and usersgroupTransformer, userTransformer and groupNameTransformer to allow custom transformations of groups and users#20893 0873a43ac1 Thanks @pushit-tech! - Resolved a bug affecting the retrieval of users from group members. By appending '/all' to the API call, we now include members from all inherited groups, as per Gitlab's API specifications. This change is reflected in the listSaaSUsers function.
Updated dependencies
4f70fdfc93: fix: use REST API to get root group memberships for GitLab SaaS users listing
This API is the only one that shows email field for enterprise users and
allows to filter out bot users not using a license using the is_using_seat
field.
We also added the annotation gitlab.com/saml-external-uid taking the value
of group_saml_identity.extern_uid of the groups/:group-id/members endpoint
response. This is useful in case you want to create a SignInResolver that
references the user with the id of your identity provider (e.g. OneLogin).
ref:
https://docs.gitlab.com/ee/user/enterprise_user/#get-users-email-addresses-through-the-api https://docs.gitlab.com/ee/api/members.html#limitations
890e3b5ad4: Make sure to include the error message when ingestion fails
0b55f773a7: Removed some unused dependencies
6ae7f12abb: Make sure the archived projects are skipped with the Gitlab API
Updated dependencies
4f70fdfc93: fix: use REST API to get root group memberships for GitLab SaaS users listing
This API is the only one that shows email field for enterprise users and
allows to filter out bot users not using a license using the is_using_seat
field.
We also added the annotation gitlab.com/saml-external-uid taking the value
of group_saml_identity.extern_uid of the groups/:group-id/members endpoint
response. This is useful in case you want to create a SignInResolver that
references the user with the id of your identity provider (e.g. OneLogin).
ref:
https://docs.gitlab.com/ee/user/enterprise_user/#get-users-email-addresses-through-the-api https://docs.gitlab.com/ee/api/members.html#limitations
0b55f773a7: Removed some unused dependencies
Updated dependencies
3d73bafd85c9: Fix Gitlab.com user ingestion by scoping GitlabOrgDiscoveryEntityProvider to a group.
BREAKING The group parameter is now required Gitlab.com Org Data integrations and the backend will fail to start without this option configured.
catalog:
providers:
gitlab:
yourProviderId:
host: gitlab.com
orgEnabled: true
+ group: org/teams
71114ac50e02: The export for the new backend system has been moved to be the default export.
For example, if you are currently importing the plugin using the following pattern:
import { examplePlugin } from '@backstage/plugin-example-backend';
backend.add(examplePlugin);
It should be migrated to this:
backend.add(import('@backstage/plugin-example-backend'));
Updated dependencies
3d73bafd85c9: Fix Gitlab.com user ingestion by scoping GitlabOrgDiscoveryEntityProvider to a group.
BREAKING The group parameter is now required Gitlab.com Org Data integrations and the backend will fail to start without this option configured.
catalog:
providers:
gitlab:
yourProviderId:
host: gitlab.com
orgEnabled: true
+ group: org/teams
71114ac50e02: The export for the new backend system has been moved to be the default export.
For example, if you are currently importing the plugin using the following pattern:
import { examplePlugin } from '@backstage/plugin-example-backend';
backend.add(examplePlugin);
It should be migrated to this:
backend.add(import('@backstage/plugin-example-backend'));
Updated dependencies
coreServices.rootConfig instead of coreService.configcoreServices.rootConfig instead of coreService.configf64345108a0: BREAKING: The configuration of the GitlabDiscoveryEntityProvider has changed as follows:
branch is now used to define the branch from which the catalog-info should be discovered.branch is now called fallbackBranch. This value specifies which branch should be used
if no default branch is defined on the project itself.To migrate to the new configuration value, rename branch to fallbackBranch
f64345108a0: BREAKING: The configuration of the GitlabDiscoveryEntityProvider has changed as follows:
branch is now used to define the branch from which the catalog-info should be discovered.branch is now called fallbackBranch. This value specifies which branch should be used
if no default branch is defined on the project itself.To migrate to the new configuration value, rename branch to fallbackBranch
gitlabDiscoveryEntityProviderCatalogModule to catalogModuleGitlabDiscoveryEntityProvider to match the recommended naming patterns.@backstage/plugin-catalog-backend/alpha exports.msw to ^1.0.0.branch of the GitlabDiscoveryEntityProvider has been deprecated in favor of the configuration key fallbackBranch.
It will be reused in future release to enforce a concrete branch to be used in catalog file discovery.
To migrate to the new configuration value, rename branch to fallbackBranch.msw to ^1.0.0.branch of the GitlabDiscoveryEntityProvider has been deprecated in favor of the configuration key fallbackBranch.
It will be reused in future release to enforce a concrete branch to be used in catalog file discovery.
To migrate to the new configuration value, rename branch to fallbackBranch./alpha exports.substrsubstrloggerToWinstonLogger to @backstage/backend-common.loggerToWinstonLogger to @backstage/backend-common.coreServices from @backstage/backend-plugin-api.msw to ^0.49.0.coreServices from @backstage/backend-plugin-api.msw to ^0.49.0.6bb046bcbe: Add gitlabDiscoveryEntityProviderCatalogModule (new backend-plugin-api, alpha).
81cedb5033: GitlabDiscoveryEntityProvider: Add option to configure schedule via app-config.yaml instead of in code.
Please find how to configure the schedule at the config at https://backstage.io/docs/integrations/gitlab/discovery
4c9f7847e4: Updated dependency msw to ^0.48.0 while moving it to be a dev dependency.
Updated dependencies
6bb046bcbe: Add gitlabDiscoveryEntityProviderCatalogModule (new backend-plugin-api, alpha).
81cedb5033: GitlabDiscoveryEntityProvider: Add option to configure schedule via app-config.yaml instead of in code.
Please find how to configure the schedule at the config at https://backstage.io/docs/integrations/gitlab/discovery
Updated dependencies
msw to ^0.47.0.msw to ^0.46.0.msw to ^0.45.0.msw to ^0.47.0.msw to ^0.46.0.msw to ^0.45.0.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
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
a70869e775: Updated dependency msw to ^0.43.0.
8006d0f9bf: Updated dependency msw to ^0.44.0.
49ff472c0b: Add the possibility in the GitlabDiscoveryEntityProvider to scan the whole project instead of concrete groups. For that, use a configuration like this one, where the group parameter is omitted (not mandatory anymore):
catalog:
providers:
gitlab:
yourProviderId:
host: gitlab-host # Identifies one of the hosts set up in the integrations
branch: main # Optional. Uses `master` as default
entityFilename: catalog-info.yaml # Optional. Defaults to `catalog-info.yaml`
Updated dependencies
msw to ^0.43.0.49ff472c0b: Add the possibility in the GitlabDiscoveryEntityProvider to scan the whole project instead of concrete groups. For that, use a configuration like this one, where the group parameter is omitted (not mandatory anymore):
catalog:
providers:
gitlab:
yourProviderId:
host: gitlab-host # Identifies one of the hosts set up in the integrations
branch: main # Optional. Uses `master` as default
entityFilename: catalog-info.yaml # Optional. Defaults to `catalog-info.yaml`
Updated dependencies
eea8126171: Add a new provider GitlabDiscoveryEntityProvider as replacement for GitlabDiscoveryProcessor
In order to migrate from the GitlabDiscoveryProcessor you need to apply
the following changes:
Before:
# app-config.yaml
catalog:
locations:
- type: gitlab-discovery
target: https://company.gitlab.com/prefix/*/catalog-info.yaml
/* packages/backend/src/plugins/catalog.ts */
import { GitlabDiscoveryProcessor } from '@backstage/plugin-catalog-backend-module-gitlab';
const builder = await CatalogBuilder.create(env);
/** ... other processors ... */
builder.addProcessor(
GitLabDiscoveryProcessor.fromConfig(env.config, { logger: env.logger }),
);
After:
# app-config.yaml
catalog:
providers:
gitlab:
yourProviderId: # identifies your dataset / provider independent of config changes
host: gitlab-host # Identifies one of the hosts set up in the integrations
branch: main # Optional. Uses `master` as default
group: example-group # Group and subgroup (if needed) to look for repositories
entityFilename: catalog-info.yaml # Optional. Defaults to `catalog-info.yaml`
/* packages/backend/src/plugins/catalog.ts */
import { GitlabDiscoveryEntityProvider } from '@backstage/plugin-catalog-backend-module-gitlab';
const builder = await CatalogBuilder.create(env);
/** ... other processors and/or providers ... */
builder.addEntityProvider(
...GitlabDiscoveryEntityProvider.fromConfig(env.config, {
logger: env.logger,
schedule: env.scheduler.createScheduledTaskRunner({
frequency: { minutes: 30 },
timeout: { minutes: 3 },
}),
}),
);
bad907d794: The last_activity_after timestamp is now being omitted when querying the GitLab API for the first time.
3ac4522537: do not create location object if file with component definition do not exists in project, that decrease count of request to gitlab with 404 status code. Now we can create processor with new flag to enable this logic:
const processor = GitLabDiscoveryProcessor.fromConfig(config, {
logger,
skipReposWithoutExactFileMatch: true,
});
WARNING: This new functionality does not support globs in the repo file path
8f7b1835df: Updated dependency msw to ^0.41.0.
Updated dependencies
msw to ^0.41.0.3ac4522537: do not create location object if file with component definition do not exists in project, that decrease count of request to gitlab with 404 status code. Now we can create processor with new flag to enable this logic:
const processor = GitLabDiscoveryProcessor.fromConfig(config, {
logger,
skipReposWithoutExactFileMatch: true,
});
WARNING: This new functionality does not support globs in the repo file path
Updated dependencies
createRouter export, please migrate to the new backend system.-j 2 to dev script to help cases where the backend does not start up during local development<EntityListProvider /> in offset mode would unnecessarily re-fetch data when the filter didn't change, causing a flicker effect.@rjsf/utils to 5.23.2.
Updated dependency @rjsf/core to 5.23.2.
Updated dependency @rjsf/material-ui to 5.23.2.
Updated dependency @rjsf/validator-ajv8 to 5.23.2.@rjsf/utils to 5.23.2.
Updated dependency @rjsf/core to 5.23.2.
Updated dependency @rjsf/material-ui to 5.23.2.
Updated dependency @rjsf/validator-ajv8 to 5.23.2.@rjsf/utils to 5.23.2.
Updated dependency @rjsf/core to 5.23.2.
Updated dependency @rjsf/material-ui to 5.23.2.
Updated dependency @rjsf/validator-ajv8 to 5.23.2.@rjsf/utils to 5.23.2.
Updated dependency @rjsf/core to 5.23.2.
Updated dependency @rjsf/material-ui to 5.23.2.
Updated dependency @rjsf/validator-ajv8 to 5.23.2.