Commit Graph

72664 Commits

Author SHA1 Message Date
Patrik Oldsberg c9132c223c docs: improve new frontend system docs for techdocs, scaffolder, and catalog
Expand the TechDocs home page customization section with concrete examples
showing how to override the page:techdocs extension using a frontend module.

Replace the incorrect scaffolder custom step layouts guide with a note that
this feature is not yet supported in the new frontend system.

Restore missing catalog customization docs for columns, actions, table
options, removing filters, and fully custom catalog pages to ensure parity
with the old frontend system guide.

Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
Made-with: Cursor
2026-03-29 23:04:08 +02:00
Patrik Oldsberg 93cb19813f fix: correct broken link to extension overrides documentation
Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
Made-with: Cursor
2026-03-29 22:40:19 +02:00
Patrik Oldsberg 8ec254cd4b docs: migrate feature docs to new frontend system as primary content
Rewrite documentation for TechDocs, Software Templates, Software Catalog,
Search, and Kubernetes features to use the new frontend system as the
primary installation and configuration instructions. Old frontend system
instructions are moved to separate `--old` suffixed files for pages with
substantial legacy content, or updated inline for pages with minimal
old-system content.

Files migrated:
- techdocs/getting-started.md
- techdocs/how-to-guides.md
- software-templates/writing-custom-step-layouts.md
- software-templates/writing-custom-field-extensions.md
- software-templates/index.md
- software-catalog/catalog-customization.md
- search/getting-started.md
- search/how-to-guides.md
- kubernetes/installation.md

Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
Made-with: Cursor
2026-03-29 21:47:46 +02:00
Fredrik Adelöw 0336f92de8 Merge pull request #33658 from backstage/freben/clarify-fetch-failures
Add FetchMiddlewares.clarifyFailures and improve permission error handling
2026-03-29 12:51:04 +02:00
Fredrik Adelöw 0eb8d1a31f Merge pull request #33290 from backstage/freben/catalog-exists-query-optimization
catalog-backend: optimize entity filter queries with EXISTS
2026-03-29 12:48:38 +02:00
Fredrik Adelöw 4538f05b24 Address PR review: extract shared searchExists helper and rename strategy
- Extract shared `searchExists` helper into `searchSubquery.ts` to avoid
  duplicate EXISTS subquery logic between the two filter modules
- Rename `applyInStrategy` to `applyExistsStrategy` to reflect the actual
  query shape
- Update block comment with correct EXISTS SQL examples
- Remove unused `strategy` parameter from `applyEntityFilterToQuery`

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Signed-off-by: Fredrik Adelöw <freben@spotify.com>
2026-03-29 12:31:01 +02:00
Patrik Oldsberg 9f3affb864 Merge pull request #33601 from thomvaill/github-provider-fix-validateLocationsExist-with-branch-filter
fix(github-provider): `validateLocationsExist: true` + `filters.branch` bug [contribfest]
2026-03-29 12:14:23 +02:00
Fredrik Adelöw d19e32ccad Use duck-typing for Request check and make clarification best-effort
Replace instanceof Request with a duck-type isRequestLike helper to
avoid cross-realm issues, and wrap the clarification logic in a
try/catch so it can never mask the original error.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Signed-off-by: Fredrik Adelöw <freben@spotify.com>
2026-03-29 10:30:22 +02:00
Fredrik Adelöw 741d367817 Merge pull request #33659 from backstage/freben/parallelize-cli-reports 2026-03-29 08:23:49 +02:00
Fredrik Adelöw 688481429c catalog-backend: optimize entity filter queries with EXISTS
Switch filter query builders from IN (subquery) to EXISTS (correlated
subquery) patterns. This enables PostgreSQL semi-join optimizations
(stops at first match) and replaces NOT IN with NOT EXISTS (faster,
no NULL-semantics pitfalls).

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Signed-off-by: Fredrik Adelöw <freben@spotify.com>
2026-03-28 22:45:48 +01:00
Fredrik Adelöw 8278540c60 Fix pLimit type and remove trailing comma in error message
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Signed-off-by: Fredrik Adelöw <freben@spotify.com>
2026-03-28 18:27:53 +01:00
Fredrik Adelöw 8e9679b3eb Parallelize CLI report generation in repo-tools
Converts createBinRunner from spawnSync to async spawn, and processes
all CLI packages concurrently with a shared p-limit limiter bounded
by CPU count. Reduces wall-clock time from ~50s to ~12s.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Signed-off-by: Fredrik Adelöw <freben@spotify.com>
2026-03-28 17:48:33 +01:00
Fredrik Adelöw c38610bd9d Address review feedback: add cast rationale, drop redundant assertError
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Signed-off-by: Fredrik Adelöw <freben@spotify.com>
2026-03-28 17:07:00 +01:00
Fredrik Adelöw cba19b13de Avoid new Request() in catch to prevent disturbed body errors
Extracts method/url directly from the input instead of constructing
a new Request in the catch block, which could fail if the body was
already consumed. Also adds a test with Request object input.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Signed-off-by: Fredrik Adelöw <freben@spotify.com>
2026-03-28 17:04:02 +01:00
Fredrik Adelöw 18c3dbadd6 Update packages/core-app-api/src/apis/implementations/FetchApi/ClarifyFailuresFetchMiddleware.ts
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Signed-off-by: Fredrik Adelöw <freben@gmail.com>
2026-03-28 17:01:07 +01:00
Fredrik Adelöw 9f1ac04765 Update packages/core-app-api/src/apis/implementations/FetchApi/ClarifyFailuresFetchMiddleware.ts
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Signed-off-by: Fredrik Adelöw <freben@gmail.com>
2026-03-28 17:00:56 +01:00
Fredrik Adelöw 400aa2313a Add FetchMiddlewares.clarifyFailures and improve permission error handling
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Signed-off-by: Fredrik Adelöw <freben@spotify.com>
2026-03-28 16:55:33 +01:00
Patrik Oldsberg 0cb1189130 workflows: add Discord notification for ready PRs (#33655)
* workflows: add Discord notification for ready PRs

Adds a new workflow that posts to Discord whenever a pull request is
opened as non-draft or marked as ready for review. Uses jq to safely
construct the JSON payload and sends it via curl to a webhook URL
stored in repository secrets.

Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
Made-with: Cursor
Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
Made-with: Cursor
Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
Made-with: Cursor
Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
Made-with: Cursor

* workflows: harden Discord webhook notification

Add early guard for missing webhook secret, disable Discord mention
parsing to prevent abuse via PR titles/bodies, and check the HTTP
response to surface webhook failures.

Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
Made-with: Cursor

* workflows: upgrade github-script to v8 and truncate embed title

Align actions/github-script pin with the rest of the repo (v8.0.0)
and truncate the Discord embed title to the 256-character limit to
prevent webhook failures on long PR titles.

Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
Made-with: Cursor

---------

Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
2026-03-28 15:44:47 +01:00
backstage-goalie[bot] 781815fd25 Merge pull request #33654 from backstage/renovate/npm-path-to-regexp-vulnerability
chore(deps): update dependency path-to-regexp to v8.4.0 [security]
2026-03-28 11:43:31 +00:00
renovate[bot] 299e189a3f chore(deps): update dependency path-to-regexp to v8.4.0 [security]
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-03-28 11:02:42 +00:00
Fredrik Adelöw 524d733762 Merge pull request #33651 from backstage/freben/remove-jest-when-dep
Remove unused jest-when dependency from scaffolder-backend-module-rails
2026-03-28 11:53:44 +01:00
Fredrik Adelöw 54f9639f3b Merge pull request #33650 from backstage/freben/simplify-create-route-ref-types
Simplify createRouteRef type signature
2026-03-28 11:20:45 +01:00
Fredrik Adelöw 2905c5931d Remove unused jest-when dev dependency from scaffolder-backend-module-rails
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Signed-off-by: Fredrik Adelöw <freben@spotify.com>
2026-03-28 11:16:00 +01:00
Fredrik Adelöw 49397c16e0 Simplify createRouteRef type signature
Replace dual TParams/TParamKeys type parameters with a single TParamKey,
removing unnecessary complexity while preserving runtime behavior.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Signed-off-by: Fredrik Adelöw <freben@spotify.com>
2026-03-28 10:58:37 +01:00
Patrik Oldsberg 7d942709fa Merge pull request #31406 from fcamgz/search-modal-overflow-fix
Fixed SearchModal not cleaning up body overflow
2026-03-28 09:58:09 +01:00
backstage-goalie[bot] 2b25d68c73 Merge pull request #33644 from backstage/renovate/ws-8.x-lockfile
chore(deps): update dependency ws to v8.20.0
2026-03-27 21:23:38 +00:00
renovate[bot] 36949b832b chore(deps): update dependency ws to v8.20.0
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-03-27 20:32:00 +00:00
backstage-goalie[bot] 96882bbfb1 Merge pull request #33638 from backstage/renovate/react-hook-form-7.x-lockfile
chore(deps): update dependency react-hook-form to v7.72.0
2026-03-27 16:06:41 +00:00
backstage-goalie[bot] b6116cbcd0 Merge pull request #33637 from backstage/renovate/openapitools-openapi-generator-cli-2.x-lockfile
chore(deps): update dependency @openapitools/openapi-generator-cli to v2.31.0
2026-03-27 16:06:36 +00:00
renovate[bot] 67139fc330 chore(deps): update dependency react-hook-form to v7.72.0
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-03-27 15:17:09 +00:00
renovate[bot] a850cd02c3 chore(deps): update dependency @openapitools/openapi-generator-cli to v2.31.0
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-03-27 15:15:04 +00:00
backstage-goalie[bot] 805253de00 Merge pull request #33633 from backstage/renovate/faker-js-faker-10.x-lockfile
chore(deps): update dependency @faker-js/faker to v10.4.0
2026-03-27 15:04:28 +00:00
backstage-goalie[bot] cfbac0d386 Merge pull request #33631 from backstage/renovate/aws-sdk-js-v3-monorepo
chore(deps): update aws-sdk-js-v3 monorepo
2026-03-27 15:04:22 +00:00
backstage-goalie[bot] 6ffd191f4a Merge pull request #33622 from backstage/renovate/typedoc-0.x-lockfile
chore(deps): update dependency typedoc to v0.28.18
2026-03-27 15:04:15 +00:00
backstage-goalie[bot] a964bccd18 Merge pull request #33568 from backstage/renovate/rollup-plugin-dts-6.x-lockfile
chore(deps): update dependency rollup-plugin-dts to v6.4.1
2026-03-27 15:04:07 +00:00
Fredrik Adelöw c454d667ee Merge pull request #33626 from backstage/fix/patch-release-showPaginationLabel
chore: add PR #33552 to patch release
2026-03-27 15:33:17 +01:00
renovate[bot] b060375ec2 chore(deps): update dependency @faker-js/faker to v10.4.0
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-03-27 14:24:45 +00:00
backstage-goalie[bot] 9cb65ff8db Merge pull request #33627 from backstage/renovate/graphql-16.x-lockfile
chore(deps): update dependency graphql to v16.13.2
2026-03-27 14:16:38 +00:00
renovate[bot] 3b1cfc59b6 chore(deps): update aws-sdk-js-v3 monorepo
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-03-27 14:10:47 +00:00
renovate[bot] eabd3e9965 chore(deps): update dependency typedoc to v0.28.18
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-03-27 14:08:10 +00:00
renovate[bot] e996683fb8 chore(deps): update dependency rollup-plugin-dts to v6.4.1
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-03-27 14:07:17 +00:00
renovate[bot] 41b82bef7a chore(deps): update dependency graphql to v16.13.2
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-03-27 13:17:32 +00:00
Johan Persson f974669a75 chore: add PR #33552 to patch release
Dependency for PR #33614 — the showPaginationLabel field was added
to PaginationOptions after v1.49.0, causing a cherry-pick conflict
when applying #33614 to the patch branch.

Signed-off-by: Johan Persson <johanopersson@gmail.com>
2026-03-27 14:16:19 +01:00
backstage-goalie[bot] 22ffba1ca9 Merge pull request #33624 from backstage/renovate/storybook-monorepo
chore(deps): update storybook monorepo to v10.3.3
2026-03-27 12:45:55 +00:00
renovate[bot] 8a829bcb22 chore(deps): update storybook monorepo to v10.3.3
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-03-27 12:03:51 +00:00
backstage-goalie[bot] 5412afaa99 Merge pull request #33620 from backstage/renovate/tar-7.x-lockfile
chore(deps): update dependency tar to v7.5.13
2026-03-27 11:59:01 +00:00
backstage-goalie[bot] a4549f6cad Merge pull request #33619 from backstage/renovate/rspack-monorepo
chore(deps): update dependency @rspack/core to v1.7.10
2026-03-27 11:58:57 +00:00
Johan Persson 3143a9fb73 chore: add PR #33614 to patch release
Signed-off-by: Johan Persson <johanopersson@gmail.com>
2026-03-27 12:36:03 +01:00
Johan Persson 04162167f5 fix(catalog-react): fix relation cards showing only one entity
Use `paginationOptions: { type: 'none' }` in EntityDataTable instead
of deriving page size from data length, which was 0 during the initial
loading render causing only one row to be displayed.

Signed-off-by: Johan Persson <johanopersson@gmail.com>
2026-03-27 12:36:03 +01:00
Johan Persson 3bc23a5587 feat(ui): support disabling pagination in useTable complete mode
Add `CompletePaginationOptions` type extending `PaginationOptions`
with a `type` field supporting `'page'` (default) and `'none'`.
When using `mode: 'complete'` with `type: 'none'`, `useTable` skips
data slicing and produces `pagination: { type: 'none' }` in
`tableProps` directly.

Also sync `pageSize` state when `paginationOptions.pageSize` changes
dynamically, fixing cases where the initial value became stale.

Signed-off-by: Johan Persson <johanopersson@gmail.com>
2026-03-27 12:36:03 +01:00