Commit Graph

71368 Commits

Author SHA1 Message Date
Patrik Oldsberg 98b6b9701b Address review feedback on plugin README updates
- Apply freben's suggested wording for old frontend system sections to
  clarify they can be skipped on the new frontend system
- Fix scaffolder README: add missing imports (AnyApiFactory,
  scmIntegrationsApiRef), closing bracket, and update link text
- Fix devtools README: correct closing tag from `</ FlatRoutes>` to
  `</FlatRoutes>`
- Fix kubernetes README: reword "must be explicitly added" to avoid
  conflicting with feature discovery paragraph

Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
Made-with: Cursor
2026-03-16 13:20:01 +01:00
Patrik Oldsberg 538c985672 Add changesets for plugin README updates
Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
Made-with: Cursor
2026-03-04 13:43:47 +01:00
Patrik Oldsberg 17dff0ba25 docs: rename package discovery to feature discovery and reduce duplication
Rename "package discovery" to "feature discovery" across all plugin
READMEs and docs to match the established terminology. Slim down the
Feature Discovery section in the architecture docs to avoid duplicating
the configuration details now covered in the installing plugins page.

Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
Made-with: Cursor
Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
Made-with: Cursor
2026-03-04 12:57:49 +01:00
Patrik Oldsberg 67723818b5 docs: improve cross-references for installing plugins page
Update the Building Apps overview to reference the new installing
plugins page instead of duplicating feature discovery content. Add
cross-references between the installing plugins page, the architecture
feature discovery docs, the plugin conversion page, and the extension
configuration page.

Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
Made-with: Cursor
2026-03-04 12:14:48 +01:00
Patrik Oldsberg adc075f557 docs(kubernetes): update README for new frontend system as default
Add install command and package discovery blurb. Restructure so the
extension configuration is the default setup path, removing the
explicit "New Frontend System" labeling.

Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
Made-with: Cursor
2026-03-04 12:07:40 +01:00
Patrik Oldsberg db7d147d17 docs(catalog-unprocessed-entities): update README for new frontend system as default
Make package discovery the default installation path. Move old frontend
system wiring to an "Old Frontend System" section and remove the
separate "Integrating with the New Frontend System" section.

Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
Made-with: Cursor
2026-03-04 11:40:38 +01:00
Patrik Oldsberg 8c4a718067 docs(org): update README for new frontend system as default
Add new frontend system installation as the default path with package
discovery and extension configuration. Move old frontend system wiring
to an "Old Frontend System" section. Update README-alpha.md to be an
extension reference rather than experimental documentation.

Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
Made-with: Cursor
2026-03-04 11:40:04 +01:00
Patrik Oldsberg 7a2761b7ce docs(catalog-graph): update README for new frontend system as default
Add new frontend system installation as the default path with package
discovery. Move old frontend system wiring to an "Old Frontend System"
section. Update README-alpha.md to be an extension reference rather
than experimental documentation.

Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
Made-with: Cursor
2026-03-04 11:39:29 +01:00
Patrik Oldsberg ae71853b45 docs(api-docs): update README for new frontend system as default
Add new frontend system installation as the default path with package
discovery. Move old frontend system wiring to an "Old Frontend System"
section. Update README-alpha.md to be an extension reference rather
than experimental documentation.

Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
Made-with: Cursor
2026-03-04 11:38:40 +01:00
Patrik Oldsberg 96662b763e docs(devtools): update README for new frontend system as default
Move old frontend system wiring instructions to an "Old Frontend
System" section. The default installation path now uses package
discovery with no manual wiring needed.

Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
Made-with: Cursor
2026-03-04 11:37:33 +01:00
Patrik Oldsberg 348141b8ee docs(user-settings): update README for new frontend system as default
Move old frontend system wiring instructions to an "Old Frontend
System" section. The default installation path now uses package
discovery with no manual wiring needed.

Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
Made-with: Cursor
2026-03-04 11:36:50 +01:00
Patrik Oldsberg 2082c44b45 docs(scaffolder): update README for new frontend system as default
Move old frontend system wiring instructions to an "Old Frontend
System" section. The default installation path now uses package
discovery with no manual wiring needed.

Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
Made-with: Cursor
2026-03-04 11:36:12 +01:00
Patrik Oldsberg 5f80ce482d docs(catalog-import): update README for new frontend system as default
Move old frontend system wiring instructions to an "Old Frontend
System" section. The default installation path now uses package
discovery with no manual wiring needed.

Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
Made-with: Cursor
2026-03-04 11:35:40 +01:00
Patrik Oldsberg c202cd698a docs(catalog): update README for new frontend system as default
Move old frontend system wiring instructions to an "Old Frontend
System" section. The default installation path now uses package
discovery with no manual wiring needed.

Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
Made-with: Cursor
2026-03-04 11:35:12 +01:00
Patrik Oldsberg 5a463b320c docs: update frontend plugin docs to default to new frontend system
Restructure plugin documentation so that the new frontend system is
the default, unlabeled installation path. Old frontend system
instructions are moved to a dedicated "Old Frontend System" section.

Add a new "Installing Plugins" page to the frontend system docs
covering package discovery, manual installation, and configuration.

Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
Made-with: Cursor
2026-03-04 11:24:35 +01:00
Charles de Dreuille a5ff77fcbe Merge pull request #33102 from backstage/bui-select
bui(ui): improve Select trigger bg and focus ring
2026-03-04 08:15:21 +00:00
renovate[bot] 42ba1a02bb chore(deps): update backstage/actions action to v0.7.8 (#32993)
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-03-04 07:42:51 +01:00
Ben Lambert e96f6d9ce9 Merge commit from fork
Signed-off-by: Bond Yan <bondy@spotify.com>
Co-authored-by: Bond Yan <bondy@spotify.com>
2026-03-04 07:33:06 +01:00
Ben Lambert 1513a0b132 Merge commit from fork
* Reject path traversal in SCM URL filepath parsing

* Harden parseGitUrlSafe against encoding bypass variants
2026-03-04 07:28:36 +01:00
Ben Lambert 30ff9810f5 Merge commit from fork
* Fix secret redaction bypass via Nunjucks filters

* Address PR feedback on secret redaction helpers
2026-03-04 07:24:40 +01:00
Carl-Erik Bergström 545557a928 feat(backend-app-api): attribute registration errors to plugins/modules (#33029)
* feat(backend-app-api): attribute registration errors to plugins/modules

Signed-off-by: Carl-Erik Bergström <cbergstrom@spotify.com>
2026-03-03 19:12:44 +01:00
Charles de Dreuille bb66b8617b Improve Select style
Signed-off-by: Charles de Dreuille <charles.dedreuille@gmail.com>
2026-03-03 17:57:26 +00:00
Charles de Dreuille 95fecdf617 Merge pull request #33081 from backstage/ui/searchfield-textfield-bg-focus
feat(ui): bg-context support and focus ring for SearchField and TextField
2026-03-03 15:56:01 +00:00
Fredrik Adelöw d69aa8689e Merge pull request #32994 from backstage/changeset-release/master
Version Packages (next)
2026-03-03 16:53:22 +01:00
Charles de Dreuille 62d674c3de Merge branch 'master' into ui/searchfield-textfield-bg-focus
# Conflicts:
#	packages/ui/src/components/PluginHeader/PluginHeader.module.css
#	packages/ui/src/components/PluginHeader/PluginHeader.tsx
#	packages/ui/src/components/PluginHeader/PluginHeaderToolbar.tsx
2026-03-03 14:16:54 +00:00
github-actions[bot] db0d171511 Version Packages (next) 2026-03-03 14:16:49 +00:00
Johan Persson 8211dc0f70 chore(ui): remove inline style from Button in Card story
Signed-off-by: Johan Persson <johanopersson@gmail.com>
2026-03-03 15:11:28 +01:00
Johan Persson 36987dbdfd chore(ui): add changesets and update API report
Signed-off-by: Johan Persson <johanopersson@gmail.com>
2026-03-03 15:11:28 +01:00
Johan Persson bfd121436b fix(ui): extend FieldLabelProps with native div element props
FieldLabel renders a div and spreads restProps onto it, but
FieldLabelProps didn't extend native div props. This meant
attributes like aria-*, data-*, role, etc. couldn't be
passed with type safety.

Signed-off-by: Johan Persson <johanopersson@gmail.com>
2026-03-03 15:11:28 +01:00
Johan Persson 8236a3d7c3 fix(ui): extend ContainerProps with native div element props
Container renders a div and spreads restProps onto it, but
ContainerProps didn't extend native div props. This meant
attributes like aria-*, data-*, role, etc. couldn't be
passed with type safety.

Signed-off-by: Johan Persson <johanopersson@gmail.com>
2026-03-03 15:11:28 +01:00
Johan Persson 68e0cc1468 fix(ui): extend AlertProps with native div element props
Alert renders a div and spreads restProps onto it, but
AlertProps didn't extend native div props. This meant
attributes like aria-*, data-*, role, etc. couldn't be
passed with type safety.

Signed-off-by: Johan Persson <johanopersson@gmail.com>
2026-03-03 15:11:28 +01:00
Johan Persson 6edae0e959 fix(ui): remove unused style prop from ButtonLinkOwnProps
The style prop was defined in ButtonLinkOwnProps but never
destructured or applied in the component, causing it to be
silently dropped. Removing it lets style flow through to the
underlying RAC Link via restProps instead.

Signed-off-by: Johan Persson <johanopersson@gmail.com>
2026-03-03 15:11:28 +01:00
Johan Persson 00bf7c7e42 fix(ui): remove unused style prop from ButtonOwnProps
The style prop was defined in ButtonOwnProps but never
destructured or applied in the component, causing it to be
silently dropped. Removing it lets style flow through to the
underlying RAC Button via restProps instead.

Signed-off-by: Johan Persson <johanopersson@gmail.com>
2026-03-03 15:11:28 +01:00
Johan Persson bd671414bb fix(ui): remove unused style prop from ButtonIconOwnProps
The style prop was defined in ButtonIconOwnProps but never
destructured or applied in the component, causing it to be
silently dropped. Removing it lets style flow through to the
underlying RAC Button via restProps instead.

Signed-off-by: Johan Persson <johanopersson@gmail.com>
2026-03-03 15:11:28 +01:00
Johan Persson 8d40a035dc fix(ui): extend DialogBodyProps with native div element props
DialogBodyProps previously only extended DialogBodyOwnProps,
meaning native HTML attributes like aria-*, data-*, etc.
could not be passed to the underlying div element.

Signed-off-by: Johan Persson <johanopersson@gmail.com>
2026-03-03 15:11:28 +01:00
Charles de Dreuille e8c8e0fe30 Merge pull request #33085 from backstage/cdedreuille/merge-plugin-header-toolbar
Style improvements on PluginHeader
2026-03-03 14:01:27 +00:00
Charles de Dreuille 8c35030431 Merge pull request #33096 from backstage/update-storybook-docsui-codeowners
chore: add design-system-maintainers as code owners for .storybook and docs-ui
2026-03-03 13:59:08 +00:00
Johan Persson aa59ab0ede chore: add design-system-maintainers as code owners for .storybook and docs-ui
These directories were previously only covered by the catch-all
rule, requiring review from @backstage/maintainers. Since they
fall under the Design System project area scope, assign them to
@backstage/design-system-maintainers.

Signed-off-by: Johan Persson <johanopersson@gmail.com>
2026-03-03 14:41:57 +01:00
Andre Wanlin 21d8beec83 Merge pull request #33083 from backstage/visibility
Update Azure integration config visibility
2026-03-03 06:49:36 -06:00
Ben Lambert 6c6a41c4d1 fix(scaffolder-backend-module-gitlab): update GroupMembers.add for gitbeaker v43 (#33091)
@gitbeaker/core v43 changed ResourceMembers.add signature to
accept accessLevel as the second arg and userId in an options object.

Signed-off-by: benjdlambert <ben@blam.sh>
2026-03-03 10:48:40 +00:00
Patrik Oldsberg 9562f04d7f Merge pull request #33084 from backstage/rugvip/fix-prepack-postpack-cjs-compat
cli: fix prepack and postpack commands CJS compat
2026-03-03 10:29:07 +01:00
Jellyfrog 0c1726a5d1 feat(scaffolder-backend-module-gitlab): add gitlab:group:access action (#32528)
* feat(scaffolder-backend-module-gitlab): add gitlab:group:access action

Add a new scaffolder action to add or remove users and groups as members
of GitLab groups. The action supports specifying access levels (Guest,
Reporter, Developer, Maintainer, Owner) when adding members and includes
dry-run support.

Signed-off-by: Jellyfrog <Jellyfrog@users.noreply.github.com>

* Update plugins/scaffolder-backend-module-gitlab/src/actions/gitlabGroupAccessAction.ts

Signed-off-by: Fredrik Adelöw <freben@gmail.com>

* Update plugins/scaffolder-backend-module-gitlab/src/actions/gitlabGroupAccessAction.ts

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Signed-off-by: Jellyfrog <Jellyfrog@users.noreply.github.com>

* Update plugins/scaffolder-backend-module-gitlab/src/actions/gitlabGroupAccessAction.ts

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Signed-off-by: Jellyfrog <Jellyfrog@users.noreply.github.com>

* Update gitlabGroupAccessAction to use parseRepoHost and conditionally resolve access level

Use parseRepoHost instead of parseRepoUrl since only the host is needed,
and skip resolveAccessLevel for remove actions where access level is unused.

Signed-off-by: Jellyfrog <Jellyfrog@users.noreply.github.com>

---------

Signed-off-by: Jellyfrog <Jellyfrog@users.noreply.github.com>
Signed-off-by: Fredrik Adelöw <freben@gmail.com>
Co-authored-by: Fredrik Adelöw <freben@gmail.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2026-03-03 10:25:04 +01:00
Charles de Dreuille 8ab2d7c3a2 Update spotify.css
Signed-off-by: Charles de Dreuille <charles.dedreuille@gmail.com>
2026-03-03 08:41:06 +00:00
John Collier c9b11eb0cf feat(scaffolder): Create basic scaffolder task query action (#32989)
* feat(scaffolder): Create basic scaffolder task query action

Signed-off-by: John Collier <jcollier@redhat.com>

* Add changeset

Signed-off-by: John Collier <jcollier@redhat.com>

* Fix test

Signed-off-by: John Collier <jcollier@redhat.com>

* Address review feedback

Signed-off-by: John Collier <jcollier@redhat.com>

* Update plugins/scaffolder-backend/src/actions/listScaffolderTasksAction.ts

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Signed-off-by: John Collier <jcollier@redhat.com>

* Update plugins/scaffolder-backend/src/actions/listScaffolderTaskAction.test.ts

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Signed-off-by: John Collier <jcollier@redhat.com>

* Apply suggestions from code review

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Signed-off-by: John Collier <jcollier@redhat.com>

* lint

Signed-off-by: John Collier <jcollier@redhat.com>

* fix conflict markers, remove unused discovery dep, add input validation bounds

Signed-off-by: benjdlambert <ben@blam.sh>

* address PR feedback: fix status enum, add int validation, improve changeset

Signed-off-by: benjdlambert <ben@blam.sh>

---------

Signed-off-by: John Collier <jcollier@redhat.com>
Signed-off-by: benjdlambert <ben@blam.sh>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: benjdlambert <ben@blam.sh>
2026-03-03 08:38:09 +00:00
Stephanie Cao 7695dd23d0 feat(scaffolder): Create scaffolder mcp action to list all installed template actions (#32765)
* add scaffolder mcp action to list all installed template actions

Signed-off-by: Stephanie <yangcao@redhat.com>

* add changeset

Signed-off-by: Stephanie <yangcao@redhat.com>

* resolve review comments

Signed-off-by: Stephanie <yangcao@redhat.com>

* cleanup code

Signed-off-by: Stephanie <yangcao@redhat.com>

* resolve pr review comments

Signed-off-by: Stephanie <yangcao@redhat.com>

* remove actionService param in options, as templateActionsRegistry has already been passed in

Signed-off-by: Stephanie <yangcao@redhat.com>

* remove unnecessary required param check

Signed-off-by: Stephanie <yangcao@redhat.com>

* type the mcp action output better

Signed-off-by: Stephanie <yangcao@redhat.com>

* use scaffolderService instead

Signed-off-by: Stephanie <yangcao@redhat.com>

* revert templateActionRegistry rename, keep actionRegistry as-is

Signed-off-by: benjdlambert <ben@blam.sh>

* clean up list-scaffolder-actions: fix tests, changeset, and description

Signed-off-by: benjdlambert <ben@blam.sh>

---------

Signed-off-by: Stephanie <yangcao@redhat.com>
Signed-off-by: benjdlambert <ben@blam.sh>
Co-authored-by: benjdlambert <ben@blam.sh>
2026-03-03 07:30:06 +00:00
Patrik Oldsberg 732f3eb50f cli: remove changeset
Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
Made-with: Cursor
2026-03-02 20:51:46 +01:00
Patrik Oldsberg 11764eff33 cli: remove stale lib/lazy.ts from previous stash
Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
Made-with: Cursor
2026-03-02 20:50:26 +01:00
Patrik Oldsberg e8a5a20f7d cli: split pack.ts into prepack.ts and postpack.ts
Each file now has a default export matching the CommandExecuteFn
pattern, removing the need for import wrapping in the loader.

Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
Made-with: Cursor
2026-03-02 20:49:56 +01:00
James Brooks d73ac23f1e Merge branch 'master' into visibility 2026-03-02 19:08:00 +00:00
Charles de Dreuille 4105a78f98 Style improvements on PluginHeader
Signed-off-by: Charles de Dreuille <charles.dedreuille@gmail.com>
2026-03-02 19:07:03 +00:00