Commit Graph

73091 Commits

Author SHA1 Message Date
Patrik Oldsberg 42e8013b4e cli: delete orphaned lazy.ts utility
Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
Made-with: Cursor
2026-04-13 13:04:10 +02:00
Patrik Oldsberg 7c25059269 Merge pull request #33859 from backstage/rugvip/remove-unused-notfounderror-class
repo-tools: 🧹
2026-04-13 12:24:27 +02:00
Patrik Oldsberg 34bdd5ed7e cli-node: delete orphaned errors.ts (#33856)
Made-with: Cursor

Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
2026-04-13 12:24:14 +02:00
Patrik Oldsberg 38f2703930 backend-defaults: delete orphaned isValidUrl utility (#33857)
Made-with: Cursor

Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
2026-04-13 12:24:06 +02:00
Patrik Oldsberg a2f0c72af8 Remove unused isDev constant from CLI version module (#33858)
The `isDev` export in `packages/cli/src/wiring/version.ts` was never
imported anywhere. Remove it to reduce dead code.


Made-with: Cursor

Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
2026-04-13 12:22:04 +02:00
James Brooks 67b88815ae Fix dialog dismissal in Backstage UI (#33785)
Dismissing a dialog by clicking on the overlay doesn't work currently despite being enabled. This is because what appears to be the overlay in the UI is actually the modal content instead, as the classes are applied incorrectly. This PR fixes that by separating out the overlay from the Modal component and lifting each of the classes up one layer.

---------

Signed-off-by: James Brooks <jamesbrooks@spotify.com>
2026-04-13 11:21:56 +01:00
Fredrik Adelöw 53143805a0 Merge pull request #33789 from backstage/freben/location-uuid-names
feat(catalog): expose `entityRef` on Location type and add `PUT /locations/:id`
2026-04-13 11:38:16 +02:00
Patrik Oldsberg b9b7862418 Merge pull request #33854 from alliasgher/docs-add-app-visualizer-details
docs: expand app-visualizer plugin documentation in migration guide
2026-04-13 10:01:18 +02:00
Patrik Oldsberg 8049d7bf6e repo-tools: remove unused NotFoundError class
Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
Made-with: Cursor
2026-04-13 09:55:59 +02:00
Fredrik Adelöw b4b085aaec Merge pull request #33842 from suhr25/fix/notifications-limit-zero-ignored
fix: handle limit=0 in getNotifications query
2026-04-13 09:43:23 +02:00
Patrik Oldsberg c6660b7f88 Merge pull request #33851 from backstage/rugvip/remove-deprecated-permissioned-route
permission-react: remove deprecated `PermissionedRoute` component
2026-04-13 09:41:11 +02:00
Fredrik Adelöw 3d2005a90e Merge pull request #33838 from AarishMansur/feat/api-docs-catalog-presentation
feat(api-docs): use catalog presentation for API titles
2026-04-13 09:33:57 +02:00
Patrik Oldsberg a4b4e46643 Merge pull request #33850 from backstage/rugvip/remove-bare-catch-rethrow
bitbucket, kubernetes: remove bare catch-and-rethrow blocks
2026-04-13 09:07:25 +02:00
Patrik Oldsberg b44c7a6fe1 Merge pull request #33849 from backstage/rugvip/remove-unused-kubernetes-utils
plugin-kubernetes: 🧹
2026-04-13 09:06:28 +02:00
Fredrik Adelöw c60c0679cf Merge pull request #33852 from backstage/rugvip/remove-deprecated-signal-service-aliases 2026-04-13 07:41:03 +02:00
Ali c336308f65 docs: expand app-visualizer plugin documentation in migration guide
Add detailed usage documentation for the app-visualizer plugin in the
troubleshooting section of the migration guide. Includes installation
steps, descriptions of all three views (Tree, Detailed, Text), and
practical guidance for using the plugin during migration.

Closes #32715

Signed-off-by: Ali <ali@kscope.ai>
2026-04-13 04:58:47 +05:00
Patrik Oldsberg 377de3645f repo-tools: fix peer-deps check to skip unreferenced dependencies
The peer-deps verification was requiring all tracked peer dependencies
(including react-router-dom) for every package that references any of
them. Now it only requires a peer dependency if the package actually
references it or if it belongs to a group containing a referenced dep.

Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
Made-with: Cursor
2026-04-13 00:53:54 +02:00
Patrik Oldsberg 90d8bfcfd3 Update yarn.lock to reflect react-router-dom removal
Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
Made-with: Cursor
2026-04-13 00:43:21 +02:00
Patrik Oldsberg 8397a9cd94 Remove deprecated SignalService and DefaultSignalService aliases
Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
Made-with: Cursor
2026-04-13 00:40:36 +02:00
Patrik Oldsberg 53954e1199 permission-react: remove deprecated PermissionedRoute component
Removed the deprecated `PermissionedRoute` component that was incompatible
with React Router v6 stable. Use `RequirePermission` instead.

Also removed the `react-router-dom` dependency from the package since it
is no longer needed.

Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
Made-with: Cursor
2026-04-13 00:40:12 +02:00
Patrik Oldsberg ed6b53cf83 Remove bare catch-and-rethrow blocks in bitbucket and kubernetes plugins
Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
Made-with: Cursor
2026-04-13 00:35:42 +02:00
Patrik Oldsberg a7112df70e Remove unused orUnknown utility in kubernetes plugin
Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
Made-with: Cursor
2026-04-13 00:34:28 +02:00
Fredrik Adelöw 774e641e45 Merge pull request #33111 from AmateurMind/fix/gitlab-discovery-topic-filter 2026-04-12 12:47:29 +02:00
suhr25 070af42307 Add changeset for notifications limit=0 fix
Signed-off-by: suhr25 <suhridmarwah25@gmail.com>
2026-04-12 16:04:16 +05:30
Andre Wanlin a52a2236d4 Merge pull request #33808 from meleu/patch-3
Update TechDocs CLI repo link, as the old repo was archived in 2021
2026-04-11 15:18:43 -05:00
Patrik Oldsberg 0ecb8225cb Merge pull request #33839 from jonkoops/deprecate-proxy-bootstrap
refactor(cli-common): deprecate `bootstrapEnvProxyAgents()` in favor of Node.js built-in proxy support
2026-04-11 12:05:55 +02:00
Fredrik Adelöw 6a34f8a26f Merge pull request #33841 from backstage/dependabot/npm_and_yarn/basic-ftp-5.2.2 2026-04-11 08:31:36 +02:00
Suhrid Marwah f7cddd3f20 fix(notifications): handle limit=0 in getNotifications query
Replace falsy guards with explicit undefined checks so that a
limit or offset of 0 is not silently discarded.

Signed-off-by: Suhrid Marwah <suhridmarwah07@gmail.com>
2026-04-11 04:32:24 +05:30
dependabot[bot] dcfc229155 chore(deps): bump basic-ftp from 5.2.0 to 5.2.2
Bumps [basic-ftp](https://github.com/patrickjuchli/basic-ftp) from 5.2.0 to 5.2.2.
- [Release notes](https://github.com/patrickjuchli/basic-ftp/releases)
- [Changelog](https://github.com/patrickjuchli/basic-ftp/blob/master/CHANGELOG.md)
- [Commits](https://github.com/patrickjuchli/basic-ftp/compare/v5.2.0...v5.2.2)

---
updated-dependencies:
- dependency-name: basic-ftp
  dependency-version: 5.2.2
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-04-10 21:32:39 +00:00
Aramis Sennyey 2b4f97adf7 docs: frontend plugin golden path (#33541)
* docs: frontend plugin golden path guide

Signed-off-by: aramissennyeydd <aramis.sennyey@doordash.com>

* add changeset

Signed-off-by: aramissennyeydd <aramis.sennyey@doordash.com>

* Apply suggestion from @aramissennyeydd

Signed-off-by: Aramis Sennyey <159921952+aramissennyeydd@users.noreply.github.com>
Signed-off-by: aramissennyeydd <aramis.sennyey@doordash.com>

* fix template

Signed-off-by: aramissennyeydd <aramis.sennyey@doordash.com>

* fix template test

Signed-off-by: aramissennyeydd <aramis.sennyey@doordash.com>

* print stderr on failure

Signed-off-by: aramissennyeydd <aramis.sennyey@doordash.com>

* try writing directly

Signed-off-by: aramissennyeydd <aramis.sennyey@doordash.com>

* maybe this?

Signed-off-by: aramissennyeydd <aramis.sennyey@doordash.com>

* address feedback

Signed-off-by: aramissennyeydd <aramis.sennyey@doordash.com>

* fix: avoid destructuring FetchApi and fix template issues

- Use fetchApi.fetch() instead of destructuring to preserve this binding
- Add discoveryApi and fetchApi to useAsync dependency array
- Use react-use/esm/useAsync to match repo conventions
- Replace waitFor + getAllByText with findByText in error test
- Update HTTP client doc to match template changes

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Signed-off-by: aramissennyeydd <aramis.sennyey@doordash.com>

* fix: address docs review feedback

- Use stronger guidance tone in scaffolding guide intro
- Slim down file tree to show folder structure only
- Mention that plugin path depends on chosen plugin ID
- Link to installation docs for non-discovery case
- Quote page:todo YAML key to avoid parse errors
- Remove "new" from "new frontend system" in template README

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Signed-off-by: aramissennyeydd <aramis.sennyey@doordash.com>

* fix: improve error handling in e2e plugin creation

- Narrow error to non-null object before using in operator
- Also write error.stdout since tools like Jest report to stdout
- Avoid variable shadowing with outer scope stdout/stderr

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Signed-off-by: aramissennyeydd <aramis.sennyey@doordash.com>

* revert: keep destructured fetch from FetchApi

Destructuring fetch from FetchApi is fine — revert to original
pattern while keeping the dependency array and other fixes.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Signed-off-by: aramissennyeydd <aramis.sennyey@doordash.com>

* feat: use @backstage/ui components in frontend plugin template

Replace core-components layout and table with @backstage/ui equivalents:
- Use HeaderPage and Container instead of Page, Header, Content, ContentHeader
- Use BUI Table with useTable and CellText instead of core-components Table
- Add @backstage/ui to template package.json dependencies
- Update poking-around docs to reflect BUI component usage

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Signed-off-by: aramissennyeydd <aramis.sennyey@doordash.com>

* fix: add example data when backend request fails

Signed-off-by: aramissennyeydd <aramis.sennyey@doordash.com>

* better logging setup

Signed-off-by: aramissennyeydd <aramis.sennyey@doordash.com>

* address feedback

Signed-off-by: aramissennyeydd <aramis.sennyey@doordash.com>

* better config driven example

Signed-off-by: aramissennyeydd <aramis.sennyey@doordash.com>

* debug logs

Signed-off-by: aramissennyeydd <aramis.sennyey@doordash.com>

* fix build failure related to unknown version

Signed-off-by: aramissennyeydd <aramis.sennyey@doordash.com>

* revert e2e run changes

Signed-off-by: aramissennyeydd <aramis.sennyey@doordash.com>

* Apply suggestions from code review

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Signed-off-by: Aramis Sennyey <159921952+aramissennyeydd@users.noreply.github.com>

* skip the discovery api for now

Signed-off-by: aramissennyeydd <aramis.sennyey@doordash.com>

* remove another ref

Signed-off-by: aramissennyeydd <aramis.sennyey@doordash.com>

* Apply suggestions from code review

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Signed-off-by: Aramis Sennyey <159921952+aramissennyeydd@users.noreply.github.com>

---------

Signed-off-by: aramissennyeydd <aramis.sennyey@doordash.com>
Signed-off-by: Aramis Sennyey <159921952+aramissennyeydd@users.noreply.github.com>
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2026-04-10 14:00:55 -04:00
Jon Koops 46ff47034c refactor(cli-common): deprecate bootstrapEnvProxyAgents() in favor of Node.js built-in proxy support
Node.js 22.21.0+ and 24.5.0+ support proxy configuration natively
via NODE_USE_ENV_PROXY=1 and --use-env-proxy, making the legacy
global-agent and undici proxy workarounds unnecessary.

Rather than removing the function immediately, deprecate it with
context-aware runtime warnings that guide users based on their
current configuration:

- Users with GLOBAL_AGENT_* vars are told to switch to standard
  HTTP_PROXY/HTTPS_PROXY and set NODE_USE_ENV_PROXY=1.
- Users with HTTP_PROXY/HTTPS_PROXY but no NODE_USE_ENV_PROXY are
  told to set it.
- Users who have already opted in to Node.js built-in proxy see no
  warning, and the legacy bootstrap is skipped entirely.

See #33444

Signed-off-by: Jon Koops <jonkoops@gmail.com>
2026-04-10 16:53:33 +02:00
Fredrik Adelöw 05b1de4321 Merge pull request #33680 from rolandfuszenecker-seon/feat/aws-rds-iam-auth
feat(backend-defaults): add AWS RDS IAM authentication support for PostgreSQL
2026-04-10 16:47:13 +02:00
Fredrik Adelöw 907bd33833 Revert locationKey change; keep allowedLocationTypes validation on updateLocation
Reverts the location_entity_ref-as-locationKey change: the full mutation on
startup would compare existing rows (locationKey = url:target) against the
new values and trigger a remove+add cycle for every location. The type:target
locationKey is kept as-is to preserve the existing startup contract.

Keeps the allowedLocationTypes validation added to DefaultLocationService.updateLocation.

Signed-off-by: Fredrik Adelöw <freben@spotify.com>
Made-with: Cursor
2026-04-10 13:57:47 +02:00
Fredrik Adelöw 068f4739ac Use stable location_entity_ref as locationKey; validate allowedLocationTypes
Use location_entity_ref as the locationKey in all applyMutation calls
instead of type:target. This prevents the catalog from treating a type/target
update as a remove+re-add cycle (which would temporarily prune the entity
and its descendants). The location_entity_ref never changes after creation,
so the catalog can safely upsert the entity in-place on updateLocation.

Also add allowedLocationTypes validation to updateLocation in
DefaultLocationService, matching the existing check in createLocation.

Signed-off-by: Fredrik Adelöw <freben@spotify.com>
Made-with: Cursor
2026-04-10 13:44:14 +02:00
aarish mansur b871d4e335 chore: add changeset
Signed-off-by: aarish mansur <aarishmansur@gmail.com>
2026-04-10 16:28:42 +05:30
aarish mansur 2143a0ee85 feat(api-docs): use catalog presentation for API titles
Signed-off-by: aarish mansur <aarishmansur@gmail.com>
2026-04-10 16:10:28 +05:30
Fredrik Adelöw 18d6f00afb Mark CatalogService updateLocation addition as BREAKING PRODUCERS in changeset
Signed-off-by: Fredrik Adelöw <freben@spotify.com>
Made-with: Cursor
2026-04-10 12:08:28 +02:00
Fredrik Adelöw e3fd1d0f8e Mark entityRef addition as breaking for Location producers in changeset
Signed-off-by: Fredrik Adelöw <freben@spotify.com>
Made-with: Cursor
2026-04-10 10:52:20 +02:00
Fredrik Adelöw f0d82ac4b0 Merge pull request #33834 from backstage/freben/exit
exit prerelease mode
2026-04-10 10:44:50 +02:00
Fredrik Adelöw de2eb783a0 exit prerelease mode
Signed-off-by: Fredrik Adelöw <freben@spotify.com>
2026-04-10 10:33:51 +02:00
Patrik Oldsberg 7ff3429bda Merge pull request #33831 from drodil/get_notifications_action
feat(notifications): action to get users notifications
2026-04-10 09:42:16 +02:00
Hellgren Heikki 4c1fd438b3 feat(notifications): action to get users notifications
useful for mcp for example to get the daily what is going on
status.

Signed-off-by: Hellgren Heikki <heikki.hellgren@op.fi>
2026-04-10 10:19:46 +03:00
Fredrik Adelöw a25a9b8573 Merge pull request #33826 from backstage/dependabot/npm_and_yarn/axios-1.15.0 2026-04-09 21:28:03 +02:00
dependabot[bot] 9b09aba3ed chore(deps-dev): bump axios from 1.14.0 to 1.15.0
Bumps [axios](https://github.com/axios/axios) from 1.14.0 to 1.15.0.
- [Release notes](https://github.com/axios/axios/releases)
- [Changelog](https://github.com/axios/axios/blob/v1.x/CHANGELOG.md)
- [Commits](https://github.com/axios/axios/compare/v1.14.0...v1.15.0)

---
updated-dependencies:
- dependency-name: axios
  dependency-version: 1.15.0
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-04-09 18:32:42 +00:00
Patrik Oldsberg aebba3f485 Merge pull request #33426 from backstage/rugvip/rename-create-app-templates
create-app: rename template directories
2026-04-09 20:25:58 +02:00
Patrik Oldsberg 70336a127c Merge pull request #33664 from backstage/scaffolder-actions-single-table
scaffolder: migrate actions page to @backstage/ui components
2026-04-09 20:25:49 +02:00
Fredrik Adelöw a328fd358f Add conflict check on updateLocation and authorization tests
Prevent updating a location to a {type, target} already used by another
location, matching the invariant enforced by createLocation. Also adds
ALLOW/DENY tests for updateLocation in AuthorizedLocationService.

Signed-off-by: Fredrik Adelöw <freben@spotify.com>
Made-with: Cursor
2026-04-09 17:21:06 +02:00
Fredrik Adelöw 5b61c2f339 Merge pull request #33822 from backstage/freben/refactor-postgres-retry-loop
refactor(backend-defaults): clean up database creation retry loop
2026-04-09 17:11:30 +02:00
Patrik Oldsberg 6541cbfc58 Remove stray package.json from create-app templates
These empty `{}` files were accidentally committed during the template
directory rename and override the properly templated package.json
generated from package.json.hbs, causing E2E tests to fail.

Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
Made-with: Cursor
2026-04-09 15:52:20 +02:00
Patrik Oldsberg 7fc1a406d2 Increase E2E timeouts for default-app template
The new frontend system app takes longer to compile and render on
Windows CI runners. Switch from port-based to URL-based server
readiness detection and increase expect timeout to 30s to avoid
flaky failures on slow runners.

Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
Made-with: Cursor
2026-04-09 15:52:20 +02:00