74233 Commits

Author SHA1 Message Date
Bond Yan cb7c6b1bc0 allowed keys implementation
Signed-off-by: Bond Yan <bondy@spotify.com>
2026-02-26 17:27:23 -05:00
Fredrik Adelöw 858eb3755c Merge pull request #33037 from backstage/freben/by-refs-predicate-query
feat(catalog): Add predicate-based filtering to the by-refs endpoint
2026-02-26 22:35:27 +01:00
Fredrik Adelöw 3880820c62 fix: clean up filter merging logic and add combined filter+query test
- Replace incorrect Object.keys-on-array guard with direct filter
  conversion, matching the pattern used in getEntityFacetsByPredicate
- Add backend router test covering combined filter query param + body
  query predicate being forwarded independently to entitiesBatch

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Signed-off-by: Fredrik Adelöw <freben@gmail.com>
2026-02-26 21:59:36 +01:00
Fredrik Adelöw ec411a01ae feat: add query predicate support to InMemoryCatalogClient
Adds support for the `query` field in `getEntitiesByRefs` and
`getEntityFacets` on InMemoryCatalogClient, matching the backend
behavior.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Signed-off-by: Fredrik Adelöw <freben@gmail.com>
2026-02-26 21:50:33 +01:00
Fredrik Adelöw 2ffb23df02 Update packages/catalog-client/src/CatalogClient.ts
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Signed-off-by: Fredrik Adelöw <freben@gmail.com>
2026-02-26 21:26:33 +01:00
Fredrik Adelöw 5aea009edd refactor: simplify entitiesBatchRequest to use filterPredicateSchema directly
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Signed-off-by: Fredrik Adelöw <freben@gmail.com>
2026-02-26 21:11:06 +01:00
Fredrik Adelöw 972f686958 feat(catalog): Add predicate-based filtering to the by-refs endpoint
Adds support for predicate-based filtering (`$all`, `$any`, `$not`,
`$exists`, `$in`, `$contains`, `$hasPrefix`) to the catalog
`/entities/by-refs` endpoint via a `query` field in the request body.

The existing `filter` query parameter behavior is preserved for backward
compatibility. The `query` predicate is only used when explicitly
provided, and when both `filter` and `query` are given, they are merged
with `$all`.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Signed-off-by: Fredrik Adelöw <freben@gmail.com>
2026-02-26 21:03:25 +01:00
Fredrik Adelöw d0e5ccc92e Merge pull request #33031 from backstage/worktree-catalog-updates
feat(catalog): Add predicate-based filtering to the facets endpoint
2026-02-26 20:37:48 +01:00
Patrik Oldsberg d5779e525c Fix CLI report generation and --help handling for loader-based commands
Add cleye-based --help handling to all commands using the loader pattern.
Update the CLI report parser to support cleye's USAGE: and FLAGS: sections.
Revert accidental backstage.role addition to eslint-plugin.

Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
2026-02-26 20:31:55 +01:00
Patrik Oldsberg 0d2d0f2e07 Add lazy loader pattern for CLI command execution
Extend `BackstageCommand.execute` to accept either a direct function or a
`{ loader }` object for lazy loading command implementations. Convert
several build and migrate commands to use the new pattern. Switch from
`program.parse` to `program.parseAsync` to properly await async actions.

Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
2026-02-26 19:56:57 +01:00
Patrik Oldsberg 6b8395d1d8 Merge pull request #33034 from backstage/rugvip/fix-form-fields-api-export
scaffolder-react: export formFieldsApiRef
2026-02-26 19:24:05 +01:00
Fredrik Adelöw f2401e9bda Merge pull request #33032 from thomvaill/fix-devtools-trigger-task-urlencoding
fix(devtools): URL-encode task IDs when triggering scheduled tasks
2026-02-26 19:23:41 +01:00
Patrik Oldsberg 6b70a2abcf Apply suggestions from code review
Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
2026-02-26 19:09:44 +01:00
Patrik Oldsberg 4a9b189125 Add .patches entry for patch release
Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
2026-02-26 18:31:50 +01:00
Patrik Oldsberg 743e4e3a1b Remove scaffolder changeset, note API signature change
Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
2026-02-26 18:31:18 +01:00
Patrik Oldsberg 33cc7b218e Address review feedback on changesets
Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
2026-02-26 18:15:08 +01:00
Patrik Oldsberg 004b5c1208 Move formFieldsApiRef and ScaffolderFormFieldsApi to scaffolder-react
The formFieldsApiRef and ScaffolderFormFieldsApi type are now defined and
exported from @backstage/plugin-scaffolder-react/alpha, and re-exported
from @backstage/plugin-scaffolder/alpha for backwards compatibility.

Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
2026-02-26 18:06:57 +01:00
Fredrik Adelöw 105befbbf0 fix(catalog): only route facets to POST when query predicate is present
Preserve backward compatibility by keeping filter-only requests on the
existing GET endpoint. Only route to POST when query is present, matching
the pattern used by queryEntities.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Signed-off-by: Fredrik Adelöw <freben@gmail.com>
2026-02-26 17:13:47 +01:00
Fredrik Adelöw 4c4632ce1b test(catalog): add GET /entity-facets backward compatibility test with filter
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Signed-off-by: Fredrik Adelöw <freben@gmail.com>
2026-02-26 17:13:01 +01:00
thomvaill afabb37104 fix(devtools): urlencode task IDs when calling trigger route
Signed-off-by: thomvaill <thomvaill@bluebricks.dev>
2026-02-26 16:50:57 +01:00
Fredrik Adelöw 12b790d3c3 chore: remove working plan documents
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Signed-off-by: Fredrik Adelöw <freben@gmail.com>
2026-02-26 16:31:22 +01:00
Fredrik Adelöw 56c908eed5 chore: add changesets and API reports for facets predicate support
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Signed-off-by: Fredrik Adelöw <freben@gmail.com>
2026-02-26 16:25:31 +01:00
Fredrik Adelöw bd179b0d3b feat(catalog): route facets requests to POST when query is present
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Signed-off-by: Fredrik Adelöw <freben@gmail.com>
2026-02-26 16:21:24 +01:00
Fredrik Adelöw be6c10ef8c test(catalog): add tests for POST /entity-facets endpoint
Add unit tests for parseEntityFacetsQuery covering valid inputs (simple
queries, complex predicate queries, no query) and error cases (missing
facets, empty facets, invalid query types). Add route-level tests for
both GET and POST /entity-facets in createRouter.test.ts.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Signed-off-by: Fredrik Adelöw <freben@gmail.com>
2026-02-26 16:21:12 +01:00
Fredrik Adelöw 7a29905ba0 feat(catalog): add query predicate to GetEntityFacetsRequest
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Signed-off-by: Fredrik Adelöw <freben@gmail.com>
2026-02-26 16:19:43 +01:00
Fredrik Adelöw e0fc8ddaec feat(catalog): add POST /entity-facets endpoint with predicate support
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Signed-off-by: Fredrik Adelöw <freben@gmail.com>
2026-02-26 16:16:50 +01:00
aramissennyeydd 59dd9b9aed add changeset
Signed-off-by: aramissennyeydd <aramis.sennyey@doordash.com>
2026-02-26 10:15:44 -05:00
aramissennyeydd 1c3b90bbd1 fix: remove already closed proxies
Signed-off-by: aramissennyeydd <aramis.sennyey@doordash.com>
2026-02-26 10:15:01 -05:00
Fredrik Adelöw adcd98eb0b feat(catalog): support query predicates in DefaultEntitiesCatalog.facets
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Signed-off-by: Fredrik Adelöw <freben@gmail.com>
2026-02-26 16:02:46 +01:00
Fredrik Adelöw 2d1580b9bd feat(catalog): add query predicate field to EntityFacetsRequest
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Signed-off-by: Fredrik Adelöw <freben@gmail.com>
2026-02-26 16:02:34 +01:00
Fredrik Adelöw 193bd00374 docs: add implementation plan for facets predicate filtering
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Signed-off-by: Fredrik Adelöw <freben@gmail.com>
2026-02-26 15:55:37 +01:00
Fredrik Adelöw c472a693b6 Merge pull request #32986 from backstage/freben/valer
run vale directly instead of through the action
2026-02-26 15:55:13 +01:00
Fredrik Adelöw bed4174d86 docs: add design for predicate-based facets filtering
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Signed-off-by: Fredrik Adelöw <freben@gmail.com>
2026-02-26 15:51:59 +01:00
Asaph M. Kotzin 2138c9cafe Update microsite/data/plugins/flagsmith.yaml
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Signed-off-by: Asaph M. Kotzin <asaphko@users.noreply.github.com>
2026-02-26 14:37:47 +00:00
Asaph M. Kotzin 83f49a5b10 Update microsite/data/plugins/flagsmith.yaml
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Signed-off-by: Asaph M. Kotzin <asaphko@users.noreply.github.com>
2026-02-26 14:31:51 +00:00
David Fankhänel 1fdce50c7a fix: regen api report
Signed-off-by: David Fankhänel <128792991+dfl-aeb@users.noreply.github.com>
2026-02-26 15:26:42 +01:00
David Fankhänel 4b8fcf036f feat(scaffolder-backend-module-gitlab): add settings.name and ownerUsername to publish:gitlab
- Add `settings.name` input to allow setting a custom human-readable
  project title that differs from the repository slug (path) at creation time
- Add `ownerUsername` input to add an arbitrary GitLab user as project
  owner (access level 50) after project creation, without requiring that
  user to be the token holder

Both inputs are optional and backward-compatible.

Signed-off-by: David Fankhänel <128792991+dfl-aeb@users.noreply.github.com>
2026-02-26 14:56:40 +01:00
Fredrik Adelöw a22c0a368e use a distinct hash instead
Signed-off-by: Fredrik Adelöw <freben@gmail.com>
2026-02-26 14:45:34 +01:00
Ben Lambert a6b28199e5 feat(catalog): Implement query-catalog-entities on top of the filter predicates (#33022)
* chore: create query catalog
Signed-off-by: benjdlambert <ben@blam.sh>

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

* feat(catalog-backend): add query-catalog-entities action

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

* fix: address PR review feedback

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

---------

Signed-off-by: benjdlambert <ben@blam.sh>
2026-02-26 14:45:10 +01:00
Fredrik Adelöw 4e85e7b0b3 Update .github/workflows/verify_docs-quality.yml
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Signed-off-by: Fredrik Adelöw <freben@gmail.com>
2026-02-26 14:37:07 +01:00
Fredrik Adelöw 356d1662d8 Update .github/workflows/verify_docs-quality.yml
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Signed-off-by: Fredrik Adelöw <freben@gmail.com>
2026-02-26 14:37:07 +01:00
Fredrik Adelöw 0c0f46de09 Update .github/workflows/verify_docs-quality.yml
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Signed-off-by: Fredrik Adelöw <freben@gmail.com>
2026-02-26 14:37:07 +01:00
Fredrik Adelöw 2690d416f8 Update scripts/check-docs-quality.js
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Signed-off-by: Fredrik Adelöw <freben@gmail.com>
2026-02-26 14:37:07 +01:00
Fredrik Adelöw b35f3595aa run vale directly instead of through the action
Signed-off-by: Fredrik Adelöw <freben@gmail.com>
2026-02-26 14:37:07 +01:00
Asaph M. Kotzin b27973aba3 docs: add the Flagsmith plugin to the microsite directory
Signed-off-by: Asaph M. Kotzin <asaphko@users.noreply.github.com>
2026-02-26 13:25:50 +00:00
Patrik Oldsberg 264159ef21 Move transform tests into the build module
Move the transform tests from packages/cli/src/tests/transforms/ into
packages/cli/src/modules/build/tests/transforms/ so that the build
module is self-contained and can eventually become its own package.

Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
2026-02-26 13:27:30 +01:00
Andre Wanlin d419bcff55 Merge pull request #32966 from backstage/renovate/nodemon-3.x-lockfile
chore(deps): update dependency nodemon to v3.1.14
2026-02-26 05:57:27 -06:00
Andre Wanlin c030579e1d Merge pull request #32963 from backstage/renovate/testcontainers-node-monorepo
chore(deps): update dependency testcontainers to v11.12.0
2026-02-26 05:57:00 -06:00
Charles de Dreuille 969540f73d Merge pull request #33002 from backstage/cdedreuille/ui-neutral-bg-simplification
feat(ui): neutral bg system overhaul — single incremental value + overlay reset
2026-02-26 11:56:42 +00:00
Patrik Oldsberg 1b32ec6a8b Resolve selected tab value through alias map
When the selected tab uses an aliased group ID, resolve it through
the alias map so the MUI Tabs selection indicator matches the
rendered group key.

Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
2026-02-26 11:48:51 +01:00