Commit Graph

73901 Commits

Author SHA1 Message Date
Ben Lambert 381cf2ae10 Merge pull request #34308 from backstage/freben/cached-service-cleanup
Fix cache eviction race in CachedUserInfoService
2026-05-19 18:37:27 +02:00
Ben Lambert 359d5a502f Merge pull request #34016 from backstage/benjdlambert/api-v1beta2-mcp-server 2026-05-19 16:01:11 +02:00
Ben Lambert 484c073be9 Merge pull request #34261 from backstage/session/scheming-finch-ks70 2026-05-19 16:00:41 +02:00
Fredrik Adelöw 97d3bd4c7b Add changeset for cached service cleanup
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Signed-off-by: Fredrik Adelöw <freben@gmail.com>
2026-05-19 15:27:22 +02:00
Fredrik Adelöw 4b4a614c5c Guard cache eviction on identity and use createDeferred in test
Only delete the cache entry on error if the map still holds the same
promise, preventing a stale rejection from evicting a newer entry.
Also switch the test to createDeferred for readability.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Signed-off-by: Fredrik Adelöw <freben@gmail.com>
2026-05-19 15:26:58 +02:00
Fredrik Adelöw 6eacdc036e Merge pull request #34252 from backstage/freben/lazy-permission-user
permission: cache user info, clean up PolicyQueryUser, drop getPluginRequestToken
2026-05-19 15:20:48 +02:00
Patrik Oldsberg 1dbc1543f4 Merge pull request #34299 from backstage/rugvip/nav-item-gone
frontend-plugin-api: remove NavItemBlueprint
2026-05-19 14:44:58 +02:00
Fredrik Adelöw a9f5560b49 Address review feedback: use fake timers and type the shared cache map
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Signed-off-by: Fredrik Adelöw <freben@gmail.com>
2026-05-19 14:44:28 +02:00
Ben Lambert f0f6823a66 docs(scaffolder): update form decorators docs for promoted API (#34181)
* docs(scaffolder): update form decorators docs for promoted API

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

* docs(scaffolder): address review feedback on form decorators docs

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

---------

Signed-off-by: benjdlambert <ben@blam.sh>
2026-05-19 14:24:58 +02:00
benjdlambert 3bf3c9d878 chore: remove unnecessary as const assertions
Signed-off-by: benjdlambert <ben@blam.sh>
2026-05-19 14:15:44 +02:00
benjdlambert 34e52d13e7 chore: regenerate API reports after rebase
Signed-off-by: benjdlambert <ben@blam.sh>
2026-05-19 14:15:35 +02:00
benjdlambert 6d98fcefe0 chore: regenerate API reports
Signed-off-by: benjdlambert <ben@blam.sh>
2026-05-19 14:15:35 +02:00
benjdlambert be71476943 chore: rename changeset, remove invalid example entity
Signed-off-by: benjdlambert <ben@blam.sh>
2026-05-19 14:15:34 +02:00
benjdlambert a674ec354d refactor: type McpServerApiEntity against ApiEntityV1alpha1
Signed-off-by: benjdlambert <ben@blam.sh>
2026-05-19 14:15:34 +02:00
benjdlambert 888955697b refactor: register mcp-server model in ai-model module, remove separate module
Signed-off-by: benjdlambert <ben@blam.sh>
2026-05-19 14:15:34 +02:00
benjdlambert 2003dcb4db refactor(catalog-model): move mcp-server model to opt-in backend module
Moves the mcp-server specType registration out of the default catalog
entity model into a separate backend module following the same pattern
as the AiResource module. Types and validators are now alpha exports.

Signed-off-by: benjdlambert <ben@blam.sh>
2026-05-19 14:15:34 +02:00
benjdlambert 2a640474c2 chore: add invalid mcp-server example for validation demo
Signed-off-by: benjdlambert <ben@blam.sh>
2026-05-19 14:15:34 +02:00
benjdlambert 664d1da60f refactor(catalog-model): move mcp-server to v1alpha1 specType, drop v1alpha2
Registers mcp-server as a specType on v1alpha1/v1beta1 instead of
introducing a new v1alpha2 apiVersion. Adds addKindVersion to the
builder so separate layers can extend existing kinds.

Signed-off-by: benjdlambert <ben@blam.sh>
2026-05-19 14:15:34 +02:00
benjdlambert 421af6a8d1 chore: add example MCP server API entity
Signed-off-by: benjdlambert <ben@blam.sh>
2026-05-19 14:15:34 +02:00
benjdlambert 8dd6dce9ed feat(catalog-model): add addKindVersion builder method and move v1alpha2 to own layer
Adds addKindVersion to CatalogModelLayerBuilder so layers can add
versions to an existing kind without re-declaring its metadata.
Moves v1alpha2 API registration into ApiEntityV1alpha2.ts as a
separate model layer using the new method.

Signed-off-by: benjdlambert <ben@blam.sh>
2026-05-19 14:15:34 +02:00
benjdlambert fc407b805e chore: remove explanatory comments from apiEntityModel test
Signed-off-by: benjdlambert <ben@blam.sh>
2026-05-19 14:15:34 +02:00
benjdlambert 2cf453f328 refactor(catalog-model): rename API v1beta2 to v1alpha2
Signed-off-by: benjdlambert <ben@blam.sh>
2026-05-19 14:15:34 +02:00
benjdlambert dddcc0b382 chore(catalog-model): regenerate API report for v1beta2 additions
Signed-off-by: benjdlambert <ben@blam.sh>
2026-05-19 14:15:33 +02:00
benjdlambert 27aee3a9b1 feat(catalog-model): add API v1beta2 with mcp-server subtype
Signed-off-by: benjdlambert <ben@blam.sh>
2026-05-19 14:15:33 +02:00
benjdlambert 163561085b feat(catalog-model): add API v1beta2 default and mcp-server schemas
Signed-off-by: benjdlambert <ben@blam.sh>
2026-05-19 14:15:33 +02:00
benjdlambert 9e0572b88c refactor: move AiResource types to @backstage/catalog-model alpha
Signed-off-by: benjdlambert <ben@blam.sh>
2026-05-19 14:15:33 +02:00
benjdlambert 19f9330073 docs: document source-location annotation for skill/rule content
Signed-off-by: benjdlambert <ben@blam.sh>
2026-05-19 14:14:58 +02:00
Fredrik Adelöw baeb4431e8 Merge pull request #34278 from backstage/freben/deprecate-immediate-stitching
catalog-backend: deprecate immediate mode stitching
2026-05-19 14:12:30 +02:00
Fredrik Adelöw 644adbd19a Move sweep before cache lookup to simplify expired entry handling
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Signed-off-by: Fredrik Adelöw <freben@gmail.com>
2026-05-19 14:09:58 +02:00
Fredrik Adelöw fdf8f753bc Merge pull request #34301 from backstage/freben/incremental-ingestion-any-array
incremental-ingestion: use ANY(array) instead of IN(...) on Postgres
2026-05-19 14:06:34 +02:00
Fredrik Adelöw 624c39c93c Refactor whereInArray to use knex .modify() for linear query chains
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Signed-off-by: Fredrik Adelöw <freben@gmail.com>
2026-05-19 13:37:49 +02:00
Fredrik Adelöw 0f8c977018 Reuse whereInArray helper in deleteMarkEntities and fix test formatting
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Signed-off-by: Fredrik Adelöw <freben@gmail.com>
2026-05-19 13:30:21 +02:00
copilot-swe-agent[bot] fd2c369f7b test(notifications-backend): increase router test timeout for DB teardown
Agent-Logs-Url: https://github.com/backstage/backstage/sessions/7f504e1c-86b2-4d51-add3-6fb873dfe222
2026-05-19 10:21:51 +00:00
Patrik Oldsberg c35e968254 Merge pull request #34077 from backstage/mob/workspaces
workspaces: introduce isolated ui workspace
2026-05-19 12:15:54 +02:00
benjdlambert a185d7e0f8 feat: restore per-type guards for union narrowing
Signed-off-by: benjdlambert <ben@blam.sh>
2026-05-19 12:14:25 +02:00
Patrik Oldsberg dcf850f1f5 Merge pull request #34108 from backstage/rugvip/forward-embedded-pg-config
cli-module-build: forward user config to embedded Postgres
2026-05-19 12:10:05 +02:00
benjdlambert e5671e44c0 refactor: extend default type and remove per-type guards
Signed-off-by: benjdlambert <ben@blam.sh>
2026-05-19 12:09:21 +02:00
Fredrik Adelöw 32f0dfe7f8 incremental-ingestion: use ANY(array) instead of IN(...) on Postgres
The whereIn('ref', refs) calls on ingestion_mark_entities generated
a unique prepared statement for every distinct array length, bloating
the Postgres query plan cache. On Postgres, use = ANY($1) with a
single array parameter instead. Falls back to regular whereIn on
SQLite/MySQL.

Signed-off-by: Fredrik Adelöw <freben@gmail.com>

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Signed-off-by: Fredrik Adelöw <freben@gmail.com>
2026-05-19 11:55:30 +02:00
Patrik Oldsberg 2a03b0798c Apply suggestion from @Rugvip
Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
2026-05-19 11:48:20 +02:00
Fredrik Adelöw 8f867a2078 Merge pull request #34272 from backstage/freben/relations-target-index
catalog-backend: add missing index on relations.target_entity_ref
2026-05-19 11:43:39 +02:00
Patrik Oldsberg 2ec4c54b5f Remove rolled-back nav item disable changeset
The grumpy-experts-leave fix was superseded by removing nav-item config
matching entirely.

Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-19 11:29:29 +02:00
Patrik Oldsberg 59d62d3019 docs: use Remix icon in building plugins tutorial
Update the PageBlueprint example to use RiPuzzleLine and drop stale
nav item references from later snippets.

Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-19 11:29:12 +02:00
Patrik Oldsberg 36998fea17 scaffolder: restore page nav title to Create
Use Create on the page extension rather than the former nav item label.

Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-19 11:28:12 +02:00
Patrik Oldsberg b5032acd83 docs: remove legacy items input row from app nav table
The items input is internal backward compatibility, not public API.

Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-19 11:23:03 +02:00
Patrik Oldsberg 15afdd994d Fix plugin-app changeset to describe legacy nav-item support
Page-based nav discovery is unchanged; the app nav change is backward
compatibility after NavItemBlueprint removal.

Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-19 11:22:38 +02:00
Patrik Oldsberg e1b0499b7d docs: use Remix icon in plugin override example
Update the architecture plugins doc to match page IconElement usage.

Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-19 11:22:05 +02:00
Patrik Oldsberg 177a1c1af6 Clarify plugin-app changeset message in isolation
Explain page-based nav discovery and legacy nav-item compatibility together.

Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-19 11:21:23 +02:00
Patrik Oldsberg 2ba8c10106 Split plugin-app into its own changeset
Keep legacy nav-item compatibility note on plugin-app only; other
plugins get a changeset focused on page title/icon for sidebar entries.

Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-19 11:20:28 +02:00
Patrik Oldsberg fe72a38768 Mark renderInTestApp nav removal as breaking in changeset
Bump frontend-test-utils as minor with user-facing impact guidance.

Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-19 11:16:14 +02:00
Patrik Oldsberg 269c4f9f0d Remove legacy nav stub from renderInTestApp
Disable app/nav in the minimal test shell instead of rendering
legacy nav-item extensions. Use renderTestApp when nav behavior matters.

Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-19 11:15:31 +02:00