Eric Peterson
130db0d6c6
Initial default implementation of the tracing service + docs
...
Signed-off-by: Eric Peterson <ericpeterson@spotify.com >
2026-05-07 12:15:15 +02:00
Eric Peterson
90b572e4a3
Add alpha TracingService API
...
Signed-off-by: Eric Peterson <ericpeterson@spotify.com >
2026-05-07 12:15:14 +02:00
Andre Wanlin
11de61064c
Merge pull request #34054 from backstage/analytics/instrumentation-skill
...
[Analytics] Instrumentation Agent Skill
2026-05-06 14:55:04 -05:00
Andre Wanlin
fe697792c5
Merge pull request #34105 from awanlin/topic/non-breaking-typos
...
Fixes for non-breaking typos and typos configuration
2026-05-06 13:44:11 -05:00
Rickard Dybeck
e68cb8ac0f
feat(kubernetes-react): add optional getClusters() cache to KubernetesBackendClient ( #34136 )
...
fix(kubernetes-react): coalesce concurrent getClusters() fetches and validate TTL input
Signed-off-by: Rickard Dybeck <dybeck@spotify.com >
2026-05-06 09:16:24 -04:00
backstage-goalie[bot]
548a5558f5
Merge pull request #34126 from backstage/renovate/npm-axios-vulnerability
...
Update dependency axios to v1.15.2 [SECURITY]
2026-05-06 12:55:51 +00:00
backstage-goalie[bot]
ad7eaee232
Merge pull request #34064 from backstage/renovate/npm-postcss-vulnerability
...
Update dependency postcss to v8.5.10 [SECURITY]
2026-05-06 12:55:46 +00:00
Fredrik Adelöw
a590d4ad96
Merge pull request #34130 from backstage/codex/turtle395-improve-mcp-auth-dialog
...
Show MCP client metadata in auth consent dialog
2026-05-06 14:56:34 +03:00
Djam
9d6edc0622
Potential fix for pull request finding
...
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com >
Signed-off-by: Djam <rdjamaile@gmail.com >
2026-05-06 13:02:43 +02:00
djamaile
4f62755eed
feat(auth): TURTLE-395: show MCP client metadata
...
Signed-off-by: djamaile <rdjamaile@gail.com >
2026-05-06 11:19:17 +02:00
Fredrik Adelöw
d047c50c4b
Merge pull request #34102 from backstage/changeset-release/master
...
Version Packages (next)
2026-05-05 19:37:23 +03:00
github-actions[bot]
b0bc1e5cc9
Version Packages (next)
2026-05-05 14:57:07 +00:00
Johan Persson
25909ba27a
feat(ui): add searchDebounceMs/filterDebounceMs to useTable complete mode ( #34127 )
...
* feat(ui): add internal useDebouncedValue hook for Table
Signed-off-by: Johan Persson <johanopersson@gmail.com >
* feat(ui): expose searchDebounceMs and filterDebounceMs on UseTableCompleteOptions
Signed-off-by: Johan Persson <johanopersson@gmail.com >
* feat(ui): debounce search/filter in useTable complete mode pipeline
Signed-off-by: Johan Persson <johanopersson@gmail.com >
* docs(ui): add SearchWithDebounce Table dev story
Signed-off-by: Johan Persson <johanopersson@gmail.com >
* docs(ui): document searchDebounceMs/filterDebounceMs and fix Table search note
Signed-off-by: Johan Persson <johanopersson@gmail.com >
* docs(ui): add searchDebounceMs/filterDebounceMs to Table props reference
Signed-off-by: Johan Persson <johanopersson@gmail.com >
* docs(ui): note controlled-callback behavior on Table debounce props
Signed-off-by: Johan Persson <johanopersson@gmail.com >
* chore(ui): regenerate API report for useTable debounce options
Signed-off-by: Johan Persson <johanopersson@gmail.com >
* chore(ui): changeset for useTable complete-mode debounce options
Signed-off-by: Johan Persson <johanopersson@gmail.com >
* chore: accept 'debouncing' in Vale vocabulary
Signed-off-by: Johan Persson <johanopersson@gmail.com >
---------
Signed-off-by: Johan Persson <johanopersson@gmail.com >
2026-05-05 16:45:18 +02:00
James Brooks
ddca41f775
Add Combobox component to Backstage UI ( #34118 )
...
Introduces a Combobox component to Backstage UI for times when you want to allow users to choose from a list of values but also specify their own in some cases.
---------
Signed-off-by: James Brooks <jamesbrooks@spotify.com >
2026-05-05 15:29:15 +01:00
Johan Persson
37535b2a60
feat(ui): add --bui-bg-inherit CSS variable ( #34124 )
...
* feat(ui): add --bui-bg-inherit CSS variable in core.css
Signed-off-by: Johan Persson <johanopersson@gmail.com >
* refactor(ui): remove duplicated data-bg painting from Box.module.css
Signed-off-by: Johan Persson <johanopersson@gmail.com >
* refactor(ui): remove duplicated data-bg painting from Flex.module.css
Signed-off-by: Johan Persson <johanopersson@gmail.com >
* refactor(ui): remove duplicated data-bg painting from Grid.module.css
Signed-off-by: Johan Persson <johanopersson@gmail.com >
* refactor(ui): centralize Accordion data-bg painting, preserve no-intent behavior
Signed-off-by: Johan Persson <johanopersson@gmail.com >
* refactor(ui): use --bui-bg-inherit for Card scroll-shadow gradients
Signed-off-by: Johan Persson <johanopersson@gmail.com >
* docs(ui): document --bui-bg-inherit token
Signed-off-by: Johan Persson <johanopersson@gmail.com >
* chore: changeset for --bui-bg-inherit
Signed-off-by: Johan Persson <johanopersson@gmail.com >
* docs(ui): add Storybook story for --bui-bg-inherit
Signed-off-by: Johan Persson <johanopersson@gmail.com >
* docs(ui): fold --bui-bg-inherit story into colors stories
Signed-off-by: Johan Persson <johanopersson@gmail.com >
* changeset: Reword for clarity.
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com >
Signed-off-by: Johan Persson <johanopersson@gmail.com >
---------
Signed-off-by: Johan Persson <johanopersson@gmail.com >
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com >
2026-05-05 16:00:47 +02:00
renovate[bot]
9158f153d3
Update dependency postcss to v8.5.10 [SECURITY]
...
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-05-05 13:45:53 +00:00
dependabot[bot]
c8813abee0
chore(deps-dev): Bump postcss from 8.5.8 to 8.5.10 in /docs-ui
...
Bumps [postcss](https://github.com/postcss/postcss ) from 8.5.8 to 8.5.10.
- [Release notes](https://github.com/postcss/postcss/releases )
- [Changelog](https://github.com/postcss/postcss/blob/main/CHANGELOG.md )
- [Commits](https://github.com/postcss/postcss/compare/8.5.8...8.5.10 )
---
updated-dependencies:
- dependency-name: postcss
dependency-version: 8.5.10
dependency-type: direct:development
...
Signed-off-by: dependabot[bot] <support@github.com >
2026-05-05 15:37:04 +02:00
renovate[bot]
a0361e34c7
Update dependency axios to v1.15.2 [SECURITY]
...
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-05-05 13:27:28 +00:00
Fredrik Adelöw
f3aebf577d
Merge pull request #34053 from sriharsha9618/msgraph-incremental
...
feat(catalog): add plugin-catalog-backend-module-msgraph-incremental
2026-05-05 16:21:37 +03:00
Emma Indal
f5ec9f95e9
Merge pull request #34119 from backstage/fix-card-link-focus-ring
...
fix(ui): show focus indicator on Card when used as a link
2026-05-05 13:40:17 +02:00
Andre Wanlin
50758120ce
Merge pull request #31010 from drodil/search_action
...
feat(search): add actions to query search engine
2026-05-05 06:04:06 -05:00
Andre Wanlin
5e53254fe0
Merge pull request #33370 from rtar/master
...
fix(plugin-techdocs-node): Move docs directory validation to after copying README.md
2026-05-05 06:02:44 -05:00
Emma Indal
9c16bf9707
fix(ui): render focus ring on Link via data-focus-visible
...
Style the bui-Link itself when keyboard-focused using the ring token,
matching the established pattern from ButtonLink. Also tweak the
changeset wording to reflect the new behavior.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
Signed-off-by: Emma Indal <emma.indahl@gmail.com >
2026-05-05 09:48:53 +02:00
Emma Indal
c41606a22d
Update .changeset/link-focus-visible.md
...
Co-authored-by: Johan Persson <johanopersson@gmail.com >
Signed-off-by: Emma Indal <emma.indahl@gmail.com >
2026-05-05 08:25:39 +02:00
Emma Indal
5b85902ede
fix(ui): show focus indicator on Card when used as a link
...
Card's focus-ring CSS keys off data-focus-visible on the
bui-CardTrigger, but Link (the trigger when href is set) wasn't
emitting it because useLink does not track focus-visible state.
Compose useFocusRing in Link so keyboard focus is now properly
indicated on Card href=... and any other Link styled via
[data-focus-visible].
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
Signed-off-by: Emma Indal <emma.indahl@gmail.com >
2026-05-04 17:18:52 +02:00
Fredrik Adelöw
1004d7bd10
Merge pull request #34117 from backstage/freben/gitlab-integration-fetch-fixes
...
fix(integration): correct GitLab fetch mode and retry on network errors
2026-05-04 16:37:42 +03:00
Fredrik Adelöw
da5ba4eecd
Handle non-numeric Retry-After header values gracefully
...
Validate the parsed Retry-After value is a finite positive number before
using it as a delay, falling back to exponential backoff otherwise. This
prevents a near-zero delay tight retry loop when the header contains an
HTTP-date or unexpected value.
Signed-off-by: Fredrik Adelöw <freben@spotify.com >
Co-authored-by: Cursor <cursoragent@cursor.com >
Signed-off-by: Fredrik Adelöw <freben@spotify.com >
Co-authored-by: Cursor <cursoragent@cursor.com >
Signed-off-by: Fredrik Adelöw <freben@spotify.com >
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-05-04 15:12:02 +02:00
Fredrik Adelöw
dd78c9cffa
defer fetch lookup so test interceptors apply
...
Capturing globalThis.fetch as a value at construction time meant the
GitLabUrlReader tests bypassed the MSW fetch interceptor and hit the
real gitlab.com (returning 401). Wrapping the call resolves fetch at
invocation time so the patched fetch is used.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
Signed-off-by: Fredrik Adelöw <freben@spotify.com >
2026-05-04 14:01:43 +02:00
Fredrik Adelöw
1500fe31b4
restructure retry loop to remove parallel response/error variables
...
Each catch path now decides for itself whether to rethrow or sleep and
continue, so the loop body has a definite Response after the try/catch
and there is no shared `error: unknown` slot that could in principle be
thrown unset. Pulls the exponential delay into a tiny local helper to
share between the two retry paths.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
Signed-off-by: Fredrik Adelöw <freben@spotify.com >
2026-05-04 11:28:29 +02:00
Fredrik Adelöw
d7f994308e
drop non-null assertion in retry loop
...
Flip the order of the response/error check so TypeScript narrows the
types itself rather than relying on `response!` to assert what the code
already guarantees by construction.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
Signed-off-by: Fredrik Adelöw <freben@spotify.com >
2026-05-04 11:17:51 +02:00
Fredrik Adelöw
90d3968e6c
address review comments
...
- Cancel discarded response bodies before retrying so the underlying
connection can be returned to the pool instead of being held open
until the response is garbage collected.
- Stop asserting on the rejected error message in the network-error
retry test; track rejection via a flag so the test isn't tied to
fetch/MSW error strings.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
Signed-off-by: Fredrik Adelöw <freben@spotify.com >
2026-05-04 11:01:41 +02:00
Patrik Oldsberg
89d9e64abd
Merge pull request #34095 from AmbrishRamachandiran/react-aria-link
...
Updates two stale React Aria documentation links in the docs-ui compnent pages
2026-05-04 10:47:27 +02:00
Fredrik Adelöw
6b112d3fe8
fix(integration): correct GitLab fetch mode and retry on network errors
...
Removes a misplaced `mode: 'same-origin'` option that would have rejected
cross-origin requests when the integration is used from a browser, and
extends the retry wrapper so transient network errors are retried using
the configured `maxRetries`. Caller-initiated aborts still propagate
immediately.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
Signed-off-by: Fredrik Adelöw <freben@spotify.com >
2026-05-04 10:43:49 +02:00
Charles de Dreuille
77082ddc3a
Merge pull request #34103 from backstage/cd/plugin-header-spacing
...
fix(ui): adjust plugin header spacing
2026-05-04 09:36:19 +01:00
Charles de Dreuille
eecd8130dc
fix(ui): tune plugin header core spacing
...
Signed-off-by: Charles de Dreuille <charles.dedreuille@gmail.com >
2026-05-04 08:41:17 +01:00
Charles de Dreuille
36825fe290
Update PluginHeaderAndHeader.stories.tsx
...
Signed-off-by: Charles de Dreuille <charles.dedreuille@gmail.com >
2026-04-30 15:01:45 +01:00
Miklós Kiss
e5f31ff3a2
Add Scaffolder Studio plugin to plugin directory ( #34092 )
...
Adds a Scaffolder category entry for @kissmiklosjr/plugin-scaffolder-studio
with an iconUrl pointing at a new SVG illustrating the plugin's template
graph editor.
Signed-off-by: Kiss Miklos <kissmiklosjr@gmail.com >
2026-04-30 09:37:45 -04:00
Andre Wanlin
bb7febddd6
Merge pull request #33252 from AdityaK60/devtools-bui-config
...
Migrate ConfigContent Component to Backstage UI
2026-04-30 07:02:45 -05:00
Andre Wanlin
1ecc3ca2e7
Grouped changesets
...
Signed-off-by: Andre Wanlin <awanlin@spotify.com >
2026-04-30 06:43:37 -05:00
Ruslans Tarasovs
a27a24fd5a
Implemented a fix preventing to write outside of current directory
...
Signed-off-by: Ruslans Tarasovs <ruslan@tarasovs.com >
2026-04-30 13:09:39 +03:00
Ruslans Tarasovs
47c1ca0613
Add a test checking that it is not possible to write outside of a current directory
...
Signed-off-by: Ruslans Tarasovs <ruslan@tarasovs.com >
2026-04-30 13:09:39 +03:00
Ruslans Tarasovs
0db7b1b163
Removed accidential console.log
...
Signed-off-by: Ruslans Tarasovs <ruslan@tarasovs.com >
2026-04-30 13:09:39 +03:00
Ruslans Tarasovs
a30dbc500b
Made the test more generic
...
Signed-off-by: Ruslans Tarasovs <ruslan@tarasovs.com >
2026-04-30 13:09:39 +03:00
Ruslans Tarasovs
5d36b961e3
Validate that symlink to README.md does not escape the directory
...
Signed-off-by: Ruslans Tarasovs <ruslan@tarasovs.com >
2026-04-30 13:09:39 +03:00
Ruslans Tarasovs
5011e30c2c
Update packages/techdocs-cli/src/legacy-docs/README.md
...
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
Signed-off-by: Ruslans Tarasovs <49794769+rtar@users.noreply.github.com >
Signed-off-by: Ruslans Tarasovs <ruslan@tarasovs.com >
2026-04-30 13:09:39 +03:00
Ruslans Tarasovs
1825392afd
Update .changeset/tough-pots-dream.md
...
Co-authored-by: Andre Wanlin <67169551+awanlin@users.noreply.github.com >
Signed-off-by: Ruslans Tarasovs <49794769+rtar@users.noreply.github.com >
Signed-off-by: Ruslans Tarasovs <ruslan@tarasovs.com >
2026-04-30 13:09:39 +03:00
Ruslans Tarasovs
18b2059ce3
Fixed incorrect parameter name
...
Signed-off-by: Ruslans Tarasovs <ruslan@tarasovs.com >
2026-04-30 13:09:38 +03:00
Ruslans Tarasovs
ff860a985d
Added forgotten test file
...
Signed-off-by: Ruslans Tarasovs <ruslan@tarasovs.com >
2026-04-30 13:09:38 +03:00
Ruslans Tarasovs
6ce84626ab
Move docs directory validation to after copying README.md
...
Signed-off-by: Ruslans Tarasovs <ruslan@tarasovs.com >
2026-04-30 13:09:38 +03:00
Charles de Dreuille
4955e51e07
fix(ui): handle core page after plugin header
...
Signed-off-by: Charles de Dreuille <charles.dedreuille@gmail.com >
2026-04-30 09:56:17 +01:00