74233 Commits

Author SHA1 Message Date
Ben Lambert fa06df607e Merge commit from fork
Signed-off-by: Benjamin Lambert <benjdlambert@gmail.com>
Signed-off-by: benjdlambert <ben@blam.sh>
2026-04-29 15:51:19 +02:00
pillaris e14f514b2d chore: re-trigger CI
Signed-off-by: pillaris <pillaris@adobe.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-29 13:13:46 +05:30
AmbrishRamachandiran 862dd62dec Updates two stale React Aria documentation links in the docs-ui component pages.
Signed-off-by: AmbrishRamachandiran <ambrish.r@infosys.com>
2026-04-29 11:17:28 +05:30
Thomas Cardonne a3a7a9d001 docs(contribute): correct format issue in doc-style-guide.md
Signed-off-by: Thomas Cardonne <thomas.cardonne@adevinta.com>
2026-04-28 22:05:54 +02:00
Karthik 610b42f72f update documentation and improve types
Signed-off-by: Karthik <karthik.jk11@gmail.com>
2026-04-29 00:19:03 +05:30
Patrik Oldsberg 151eb3f8ff Merge pull request #34024 from backstage/changeset-release/master
Version Packages (next)
2026-04-28 19:41:07 +02:00
github-actions[bot] 7295193bb6 Version Packages (next) 2026-04-28 15:53:09 +00:00
renovate[bot] 07b7490e79 fix(deps): update dependency next to v16.2.3 [security]
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-04-28 17:45:50 +02:00
James Brooks e7fc79fb13 Add support for sections to Select (#34012)
Updates the Select component to accept a set of sections with options as opposed to just a flat list of options.

---------

Signed-off-by: James Brooks <jamesbrooks@spotify.com>
2026-04-28 16:13:39 +01:00
Patrik Oldsberg 080dcbb982 Merge pull request #34085 from backstage/rugvip/seed-yarn-lock-protobufjs-inquire
create-app: pin protobufjs and @protobufjs/inquire in yarn.lock seed
2026-04-28 16:27:39 +02:00
Patrik Oldsberg 7daa136495 create-app: pin protobufjs and @protobufjs/inquire in yarn.lock seed
@protobufjs/inquire@1.1.1 dropped the eval-based workaround that hid its
dynamic require() from bundlers, which makes webpack/rspack emit a
"Critical dependency: the request of a dependency is an expression"
warning that fails the build under CI=true. protobufjs@7.5.6 also
bumped its dependency on @protobufjs/inquire from ^1.1.0 to ^1.1.1, so
pinning just the inquire range isn't enough — pin protobufjs to 7.5.5
for all known workspace ranges as well.

Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
Made-with: Cursor
2026-04-28 16:05:29 +02:00
renovate[bot] 6de96f171d Update CodeMirror
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-04-28 11:58:57 +02:00
renovate[bot] bd389d6458 chore(deps): update dependency motion to v12.38.0
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-04-28 11:45:43 +02:00
pillaris fec21115a3 revert: keep alpha entrypoint empty per maintainer guidance
Net-new package does not need alpha exports per awanlin's review.
Revert alpha.ts to export {}, remove default alias from module/index.ts,
and restore empty report-alpha.api.md.

Signed-off-by: pillaris <pillaris@adobe.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-28 15:09:26 +05:30
renovate[bot] 015362b551 chore(deps): update dependency @uiw/react-codemirror to v4.25.9
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-04-28 11:30:17 +02:00
renovate[bot] 754e2bf0df chore(deps): update dependency @uiw/codemirror-themes to v4.25.9
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-04-28 11:29:07 +02:00
dependabot[bot] e1e97020bf build(deps): bump yaml from 2.8.1 to 2.8.3 in /docs-ui
Bumps [yaml](https://github.com/eemeli/yaml) from 2.8.1 to 2.8.3.
- [Release notes](https://github.com/eemeli/yaml/releases)
- [Commits](https://github.com/eemeli/yaml/compare/v2.8.1...v2.8.3)

---
updated-dependencies:
- dependency-name: yaml
  dependency-version: 2.8.3
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-04-28 11:27:46 +02:00
dependabot[bot] 7cfbdad7bb build(deps): bump picomatch from 2.3.1 to 2.3.2 in /docs-ui
Bumps [picomatch](https://github.com/micromatch/picomatch) from 2.3.1 to 2.3.2.
- [Release notes](https://github.com/micromatch/picomatch/releases)
- [Changelog](https://github.com/micromatch/picomatch/blob/master/CHANGELOG.md)
- [Commits](https://github.com/micromatch/picomatch/compare/2.3.1...2.3.2)

---
updated-dependencies:
- dependency-name: picomatch
  dependency-version: 2.3.2
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-04-28 11:27:01 +02:00
Ferin Patel 07e08beac1 feat: Add status check functions for scaffolder steps (#32890)
* feat: Add status check functions for scaffolder steps

- Introduced `always()` and `failure()` functions to control step execution after failures.
- Updated documentation to explain usage of new status check functions.
- Enhanced NunjucksWorkflowRunner to process these functions in step conditions.
- Added tests to verify behavior of steps using `always()` and `failure()`.

Signed-off-by: ferin79 <ferinpatel79@gmail.com>

* feat: Enhance status check functions in scaffolder steps

- Updated documentation to clarify usage of status check functions with template expressions.
- Modified tests to reflect changes in syntax for status checks.
- Refactored NunjucksWorkflowRunner to ensure proper handling of status check functions in step conditions.

Signed-off-by: ferin79 <ferinpatel79@gmail.com>

* docs: Clarify usage of status check functions in writing templates

- Removed redundant explanation about truthy conditions after step failure.
- Streamlined the description for better clarity on status check functions.

Signed-off-by: ferin79 <ferinpatel79@gmail.com>

---------

Signed-off-by: ferin79 <ferinpatel79@gmail.com>
2026-04-28 11:16:59 +02:00
pillaris 3a0dfd0031 fix: export BackendFeature from alpha entrypoint and regenerate API report
Re-export catalogModuleMicrosoftGraphIncrementalEntityProvider as @alpha
default from src/alpha.ts, matching the pattern of catalog-backend-module-msgraph.
Add default export alias in module/index.ts and regenerate report-alpha.api.md.

Signed-off-by: pillaris <pillaris@adobe.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-28 11:07:45 +05:30
pillaris fbc2c76d39 fix: update alpha API report to match API Extractor output
The manually-written empty report-alpha.api.md didn't match what API
Extractor generates for an empty alpha entry point. Use the correct
generated output to pass the CI api-reports check.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Signed-off-by: pillaris <pillaris@adobe.com>
2026-04-28 10:14:28 +05:30
pillaris ff199fef07 fix: address Andre's review comments
- Update copyright year from 2024 to 2026 across all new source files
- Clear alpha entry point (no alpha exports needed for a net-new package)
  and regenerate report-alpha.api.md accordingly
- Delete CHANGELOG.md (auto-generated by the release process)
- Change changeset bump from patch to minor so the first release is 0.1.0,
  and remove the redundant "New package:" title line
- Reset package version to 0.0.0 (release process sets the real version)
- Add incremental ingestion section to docs/integrations/azure/org.md

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Signed-off-by: pillaris <pillaris@adobe.com>
2026-04-28 09:54:40 +05:30
Aramis Sennyey ffae2d437c style: use numbered lists (#34057)
* style: use numbered lists

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

* Update docs/contribute/doc-style-guide.md

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

* fix prettier

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

---------

Signed-off-by: aramissennyeydd <aramis.sennyey@doordash.com>
Signed-off-by: Aramis Sennyey <159921952+aramissennyeydd@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2026-04-27 16:38:56 -04:00
Patrik Oldsberg 50c324e617 Merge pull request #34076 from wss-dogara/feat/external-route-ref-test-support
Add support for external refs renderInTestApp
2026-04-27 22:07:34 +02:00
Patrik Oldsberg 2f31c3f259 workspaces: add root prettier and eslint ignores, fix base branch
The root prettier and eslint runs shouldn't reach into the standalone
workspaces, since each one manages its own formatting and linting. Also
correct the ui workspace lint script to diff against origin/master to
match the repo's default branch.

Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
Made-with: Cursor
2026-04-27 21:29:15 +02:00
Patrik Oldsberg 6a544bb06a workspaces: add codeowner for ui workspace
Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
Made-with: Cursor
2026-04-27 20:35:30 +02:00
Dylan O'Gara c0f4540146 Remove type name from JSDoc comments
Signed-off-by: Dylan O'Gara <dogara@webstaurantstore.com>
2026-04-27 14:30:38 -04:00
Dylan O'Gara fa363f9d3c Add support for external refs renderInTestApp
Signed-off-by: Dylan O'Gara <dogara@webstaurantstore.com>
2026-04-27 14:06:08 -04:00
Patrik Oldsberg 2b0e117784 ws/ui: clean up package.json dependencies and scripts
Drop the unused playwright/e2e tooling and the plugins/* workspace glob,
align the remaining dev dependencies with the root, and bump node-gyp to
match.

Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
Made-with: Cursor
2026-04-27 19:38:21 +02:00
Patrik Oldsberg d2bab977fc ws/ui: install Backstage yarn plugin
Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
Made-with: Cursor
2026-04-27 19:37:40 +02:00
Patrik Oldsberg ec8b650314 ws/ui: further cleanup, yarn reuse, README update
Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
2026-04-27 19:19:22 +02:00
Charles de Dreuille ca53b86336 Merge pull request #34067 from backstage/cursor/header-sticky-prop
BUI - Add sticky Header support
2026-04-27 14:20:23 +01:00
Charles de Dreuille db5956a2a0 chore(ui): note header class breaking change
Signed-off-by: Charles de Dreuille <charles.dedreuille@gmail.com>
2026-04-27 13:41:12 +01:00
Patrik Oldsberg ffa1882027 ws/ui: remove packages, examples, and app config
Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
2026-04-27 13:38:17 +02:00
Patrik Oldsberg 93fcb273cd ws/ui: initial yarn.lock
Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
2026-04-27 13:36:01 +02:00
Patrik Oldsberg 44cca308ef workspaces: scaffold ui workspace
Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
2026-04-27 13:32:59 +02:00
Charles de Dreuille 5efddbdbca chore(ui): bump header sticky changeset to minor
Signed-off-by: Charles de Dreuille <charles.dedreuille@gmail.com>
2026-04-27 11:30:04 +01:00
pillaris 1b5e83401f fix: wrap child group transformer in try/catch to keep burst resilient
A throwing custom groupTransformer on a child group member would fail
the entire groups-phase burst. Apply the same try/catch + debug/warn
logging pattern already used for user member transformation.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Signed-off-by: pillaris <pillaris@adobe.com>
2026-04-27 15:43:33 +05:30
pillaris 69cf79ea00 chore: fix prettier formatting in provider test file
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Signed-off-by: pillaris <pillaris@adobe.com>
2026-04-27 15:28:39 +05:30
pillaris e1714a861c fix: guard user.id before photo fetch, warn on groupIncludeSubGroups, skip dangling child refs
- Guard getUserPhotoGated with user.id presence to prevent requesting
  users/undefined/photo when Graph omits the id field
- Log a warning when groupIncludeSubGroups is configured, matching the
  existing warning for unsupported userGroupMember* options
- Skip spec.children population when groupFilter/groupSearch is active,
  since child groups may not pass the filter and would create dangling
  references in the catalog

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Signed-off-by: pillaris <pillaris@adobe.com>
2026-04-27 15:10:25 +05:30
pillaris 9e9eca49c7 docs: fix page-size docs and note groupIncludeSubGroups unsupported
Update all references to "up to 999 items" to accurately reflect that
users are fetched in pages of 999 while groups use a smaller page of
100. Also document groupIncludeSubGroups as unsupported in the JSDoc
@remarks, README, and comparison table.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Signed-off-by: pillaris <pillaris@adobe.com>
2026-04-27 14:44:07 +05:30
pillaris 0f36fcd879 chore: remove incremental ingestion modules from example backend
These modules are not needed by all Backstage users, so registering them
unconditionally in the example backend adds unnecessary routes, services,
and runtime dependencies. The backend.add(...) lines are documented in
the plugin README instead.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Signed-off-by: pillaris <pillaris@adobe.com>
2026-04-27 14:37:30 +05:30
Charles de Dreuille 5dce801a16 Merge pull request #34069 from backstage/cursor/cardbody-min-height
fix(ui): set CardBody minimum height
2026-04-27 10:00:52 +01:00
pillaris ac04bb696d fix: pass $select when fetching group members to prevent sparse objects
Without $select, Microsoft Graph returns only id and @odata.type for
group members, which causes defaultUserTransformer/defaultGroupTransformer
to return undefined and silently drop membership refs. Requesting the
minimum fields needed by both transformers ensures member objects always
have enough data to produce stable entity refs.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Signed-off-by: pillaris <pillaris@adobe.com>
2026-04-27 14:29:41 +05:30
pillaris 6fa66e7907 fix: remove unnecessary direct msgraph dep from example backend
@backstage/plugin-catalog-backend-module-msgraph is only used
transitively via msgraph-incremental; no direct import exists in
packages/backend/src/index.ts.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Signed-off-by: pillaris <pillaris@adobe.com>
2026-04-27 14:26:52 +05:30
Charles de Dreuille de75f7c0f4 fix(ui): set CardBody minimum height
Signed-off-by: Charles de Dreuille <charles.dedreuille@gmail.com>
2026-04-27 08:56:12 +01:00
pillaris 99ddcc3957 fix: address third round of Copilot review comments
- Wrap userTransformer call for group members in try/catch so a sparse
  object that causes the transformer to throw logs a warning and skips
  that member rather than failing the entire groups page
- Split PAGE_SIZE into USER_PAGE_SIZE (999) and GROUP_PAGE_SIZE (100)
  so each burst stays within its time budget despite per-group member
  fetching in the groups phase
- Always send $count=true in advanced mode even when no query object is
  provided (use empty object spread instead of short-circuit on query)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Signed-off-by: pillaris <pillaris@adobe.com>
2026-04-27 12:44:50 +05:30
pillaris 159a862ec3 fix: address second round of Copilot review comments
- getUserPhotoGated now throws for non-404 errors (401/403/5xx) so
  callers can distinguish a missing photo from a real API failure
- Log a debug message when photo loading fails instead of swallowing
  the error silently
- Merge transformer-pre-populated spec.members/spec.children with
  fetched Graph membership rather than overwriting them
- deriveRestLength now also excludes manual-trigger schedule objects
  (not just cron expressions) from being cast as HumanDuration

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Signed-off-by: pillaris <pillaris@adobe.com>
2026-04-27 12:15:34 +05:30
pillaris e1cb610c7b fix: update alpha API report for MSGraphCursor.nextLink type change
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Signed-off-by: pillaris <pillaris@adobe.com>
2026-04-27 10:55:37 +05:30
Charles de Dreuille ec93dd281a fix(ui): always render headerTop, adjust content padding, add story
- Always render headerTop wrapper for consistent spacing
- Reduce default content padding-top from space-6 to space-3
- Add PluginHeaderAndHeader story and update Spotify theme

Signed-off-by: Charles de Dreuille <charles.dedreuille@gmail.com>
2026-04-26 21:15:42 +01:00