Commit Graph

2569 Commits

Author SHA1 Message Date
Ben Lambert 29d398b57c fix(auth-backend): harden default allowed patterns for CIMD and DCR (#34260)
* fix(auth-backend): harden default allowed patterns for CIMD and DCR

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

* address PR review feedback for OIDC defaults

- narrow CLI client ID pattern to exact cli.json path
- add BREAKING prefix to changeset
- add IPv6 [::1] to docs examples
- add loopback redirect URI tests for IPv6 and 127.0.0.1

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

* remove dead ['*'] fallback when features are disabled

The restrictive defaults are now always used regardless of the enabled
flag, since the patterns are only consulted on code paths that require
the feature to be enabled.

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

* add default pattern tests and fix docs cli example

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

* use URL constructor for CLI client ID

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

* use string templating for cliClientId to match OidcRouter

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

* fix docs: remove misleading CLI client_id URL example

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

---------

Signed-off-by: benjdlambert <ben@blam.sh>
2026-05-19 09:45:31 +02:00
renovate[bot] d7116e3780 chore(deps): update actions/labeler action to v6.1.0
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-05-14 04:27:10 +00:00
Fredrik Adelöw 34abc1d0ee Merge pull request #33503 from backstage/renovate/mshick-add-pr-comment-3.x
chore(deps): update mshick/add-pr-comment action to v3
2026-05-13 15:16:37 +02:00
Fredrik Adelöw 84e1ca6b85 Merge pull request #33769 from backstage/renovate/chromaui-action-digest
chore(deps): update chromaui/action digest to e3eb8ec
2026-05-13 15:15:33 +02:00
Fredrik Adelöw 5da4528553 Merge pull request #34088 from backstage/renovate/actions-cache-5.x
chore(deps): update actions/cache action to v5.0.5
2026-05-13 13:19:28 +02:00
Fredrik Adelöw b6ff1ca58f Merge pull request #34083 from backstage/renovate/stefanbuck-github-issue-parser-digest
chore(deps): update stefanbuck/github-issue-parser digest to cb6e971
2026-05-13 13:19:11 +02:00
Fredrik Adelöw f96ee452f8 Merge pull request #34082 from backstage/renovate/actions-upload-artifact-digest
chore(deps): update actions/upload-artifact digest to 043fb46
2026-05-13 13:18:55 +02:00
Fredrik Adelöw 1399e136d7 Merge pull request #34073 from backstage/renovate/actions-cache-digest
chore(deps): update actions/cache digest to 27d5ce7
2026-05-13 13:18:37 +02:00
Fredrik Adelöw b6e1ecf158 Merge pull request #34166 from backstage/renovate/actions-upload-artifact-7.x
chore(deps): update actions/upload-artifact action to v7.0.1
2026-05-13 13:14:32 +02:00
Fredrik Adelöw 17c0551651 ci: add explicit permissions to pull_request_target workflows
Add least-privilege permissions blocks to three workflows that use
pull_request_target without explicit permission scoping:

- sync_renovate-changesets: contents:write + pull-requests:write
- sync_dependabot-changesets: contents:write + pull-requests:write
- sync_pull-requests-trigger: all none (only uploads artifacts)

These workflows run in the base repo context and have access to secrets.
Explicit permissions ensure the GITHUB_TOKEN is scoped to only what each
workflow needs, reducing blast radius if a guard is ever bypassed.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Signed-off-by: Fredrik Adelöw <freben@gmail.com>
2026-05-12 19:59:05 +02:00
renovate[bot] 2e7c972a06 chore(deps): update mshick/add-pr-comment action to v3
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-05-12 10:37:37 +00:00
renovate[bot] b4d844d304 chore(deps): update actions/upload-artifact action to v7.0.1
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-05-12 10:26:25 +00:00
renovate[bot] 6bdde6e6cb chore(deps): update actions/cache action to v5.0.5
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-05-12 10:26:18 +00:00
renovate[bot] 0395bb37a3 chore(deps): update stefanbuck/github-issue-parser digest to cb6e971
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-05-12 10:26:12 +00:00
renovate[bot] 59a4e68a36 chore(deps): update chromaui/action digest to e3eb8ec
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-05-12 10:26:06 +00:00
renovate[bot] c1bef46f1f chore(deps): update actions/upload-artifact digest to 043fb46
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-05-12 10:26:00 +00:00
renovate[bot] 9b22d8dbf1 chore(deps): update actions/cache digest to 27d5ce7
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-05-12 10:25:52 +00:00
Andre Wanlin a44f28972a Merge pull request #34141 from backstage/renovate/snyk-actions-digest
chore(deps): update snyk/actions digest to 9cf6ca7
2026-05-08 14:08:36 -05:00
renovate[bot] 2e435d8e88 Update github/codeql-action action to v4.35.4
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-05-07 16:26:59 +00:00
renovate[bot] 2f54d56a7c Update snyk/actions digest to 9cf6ca7
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-05-06 13:03:29 +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
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
Andre Wanlin 84913005fd Merge pull request #31838 from karthikjeeyar/mkdocs-patch
feat(techdocs): add app-config option to disable external font download
2026-04-29 12:47:12 -05:00
Karthik 610b42f72f update documentation and improve types
Signed-off-by: Karthik <karthik.jk11@gmail.com>
2026-04-29 00:19:03 +05:30
pillaris f1279ea2d6 feat(catalog): add catalog-backend-module-msgraph-incremental plugin
Introduces a new Backstage backend module that incrementally ingests
users and groups from Microsoft Graph one page at a time, using the
incremental ingestion framework.
Unlike MicrosoftGraphOrgEntityProvider, this module never holds the
full dataset in memory. Each burst processes a single page (up to 999
items), making it suitable for large Azure AD tenants where the
full-scan provider causes memory pressure or OOM failures.
The @odata.nextLink cursor is persisted in the incremental ingestion
marks table, so a pod restart during ingestion resumes from the last
completed page rather than starting over.
Signed-off-by: pillaris <pillaris@adobe.com>
2026-04-23 15:56:43 +05:30
Fredrik Adelöw 5d841af5d0 chore: add 'unregisters' to Vale vocabulary
Signed-off-by: Fredrik Adelöw <freben@spotify.com>
Made-with: Cursor
2026-04-16 12:15:49 +02:00
Johan Persson 9400de4999 add monopackage/monopackages to vale vocabulary
Signed-off-by: Johan Persson <johanopersson@gmail.com>
2026-04-15 12:32:17 +02: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
Karthik 329f5920b6 feat(techdocs): add techdocs-cli option to disable external font download
Signed-off-by: Karthik <karthik.jk11@gmail.com>
2026-03-31 21:39:52 +05:30
Patrik Oldsberg d10af0be6d Merge pull request #33657 from backstage/rugvip/replace-discord-action
workflows: replace Ilshidur/action-discord with inline github-script
2026-03-30 20:28:04 +02:00
Fredrik Adelöw 6cc48113fc remove some cli deprecation warnings
Signed-off-by: Fredrik Adelöw <freben@spotify.com>
2026-03-30 09:44:30 +02: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
Patrik Oldsberg 18c928175d workflows: replace Ilshidur/action-discord with inline github-script
Replace the third-party Discord notification action with inline
`actions/github-script@v8` steps that post to the Discord webhook
directly using fetch. This removes a third-party action dependency
and adds explicit error handling for missing secrets and failed
webhook requests.

Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
Made-with: Cursor
2026-03-28 13:07:38 +01:00
Fredrik Adelöw 76769c8be7 Merge pull request #33496 from backstage/renovate/github-codeql-action-4.x
chore(deps): update github/codeql-action action to v4.34.1
2026-03-27 11:43:25 +01:00
Fredrik Adelöw 7ca5846bff Merge pull request #33502 from backstage/renovate/microsoft-setup-msbuild-3.x
chore(deps): update microsoft/setup-msbuild action to v3
2026-03-27 11:43:07 +01:00
renovate[bot] 4975a14a38 chore(deps): pin dependencies
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-03-27 00:58:06 +00:00
renovate[bot] 3207f9d1c4 chore(deps): update microsoft/setup-msbuild action to v3
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-03-26 16:11:54 +00:00
renovate[bot] 5e1f181f74 chore(deps): update github/codeql-action action to v4.34.1
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-03-26 16:11:24 +00:00
Patrik Oldsberg fe6f4a03ab docs: add frontend system migration skills
Add three new skill documents for migrating to the new Backstage frontend system:

- App migration (old app-defaults to new frontend-defaults)
- Plugin dual-support (adding new system support while keeping old system working)
- Plugin full migration (completely moving to the new frontend system)

Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
Made-with: Cursor
2026-03-25 09:58:27 +01:00
Aramis Sennyey 7f26ea88c5 docs: add documentation style guide for Backstage contributors (#33538)
* docs: add documentation style guide for Backstage contributors

Adapted from the Kubernetes documentation style guide, tailored
for the Backstage project with Backstage-specific terminology,
Docusaurus conventions, tone guidelines, and project word list.

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

* docs: soften "we" guidance and link style guide from CONTRIBUTING.md

Relax the "avoid we" rule to allow "we" in tutorials and walkthroughs
where it means "you and I, working through this together." Also add
references to the style guide from CONTRIBUTING.md and AGENTS.md.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
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>

* fix link checker

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

* skip block

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

* address feedback

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: Claude Opus 4.6 <noreply@anthropic.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2026-03-24 15:44:35 +01:00
Fredrik Adelöw 10e7e657b3 Merge pull request #33456 from backstage/renovate/actions-cache-digest
chore(deps): update actions/cache digest to 6682284
2026-03-20 11:14:32 +01:00
renovate[bot] b445d25735 chore(deps): update actions/cache action to v5.0.4
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-03-20 09:30:54 +00:00
renovate[bot] 0e3942620b chore(deps): update actions/cache digest to 6682284
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-03-20 09:30:46 +00:00
Fredrik Adelöw e7cfb0cc8e Merge pull request #33306 from backstage/renovate/windows-2025.x
chore(deps): update dependency windows to v2025
2026-03-20 10:24:20 +01:00
Fredrik Adelöw dd5cc5be52 Merge pull request #33307 from backstage/renovate/docker-build-push-action-7.x
chore(deps): update docker/build-push-action action to v7
2026-03-20 10:24:00 +01:00
Fredrik Adelöw c7abbf0373 Merge pull request #33311 from backstage/renovate/docker-login-action-4.x
chore(deps): update docker/login-action action to v4
2026-03-20 10:23:45 +01:00
Fredrik Adelöw f62aff93e8 Merge pull request #33314 from backstage/renovate/docker-setup-buildx-action-4.x
chore(deps): update docker/setup-buildx-action action to v4
2026-03-20 10:23:11 +01:00
Fredrik Adelöw ed3f0f9f0d Merge pull request #33315 from backstage/renovate/major-github-artifact-actions
chore(deps): update github artifact actions (major)
2026-03-20 10:22:06 +01:00
Fredrik Adelöw 57926b473b Merge pull request #33320 from backstage/renovate/github-codeql-action-4.x
chore(deps): update github/codeql-action action to v4
2026-03-20 10:20:49 +01:00