Commit Graph

71776 Commits

Author SHA1 Message Date
Fredrik Adelöw 223a3d1f88 Merge pull request #33269 from backstage/renovate/lint-staged-16.x
chore(deps): update dependency lint-staged to v16
2026-03-12 10:31:48 +01:00
Fredrik Adelöw d0f37c369b Merge pull request #33295 from backstage/renovate/sort-package-json-3.x
chore(deps): update dependency sort-package-json to v3
2026-03-12 10:30:15 +01:00
Fredrik Adelöw de44367824 Merge pull request #33294 from backstage/renovate/snyk-nodejs-lockfile-parser-2.x
chore(deps): update dependency snyk-nodejs-lockfile-parser to v2
2026-03-12 10:29:29 +01:00
Fredrik Adelöw a41eff026f Merge pull request #33251 from backstage/renovate/globals-17.x
chore(deps): update dependency globals to v17
2026-03-12 10:25:46 +01:00
Fredrik Adelöw c0b779f5a0 Merge pull request #33281 from backstage/freben/search-fk-safe-migration
fix(catalog): make search FK migration safe for large databases
2026-03-12 10:07:18 +01:00
Fredrik Adelöw d6669758af Merge pull request #33298 from backstage/freben/devtools-cancel-task
devtools: Add cancel task operation to scheduled tasks
2026-03-12 10:02:54 +01:00
Fredrik Adelöw 325feafebf Update .changeset/devtools-cancel-scheduled-task.md
Signed-off-by: Fredrik Adelöw <freben@gmail.com>
2026-03-12 09:24:38 +01:00
Fredrik Adelöw 239c8dcfd2 cleanup
Signed-off-by: Fredrik Adelöw <freben@spotify.com>
2026-03-11 20:32:31 +01:00
Fredrik Adelöw 9110c16c8a api report
Signed-off-by: Fredrik Adelöw <freben@spotify.com>
2026-03-11 19:41:10 +01:00
Rickard Dybeck 6b6b5de514 feat(kubernetes): add DNS endpoint support to GKE cluster locator (#33297)
* feat(kubernetes): add DNS endpoint support to GKE cluster locator

Add endpointType config option to GkeClusterLocator allowing use of
DNS-based control plane endpoints instead of public IP endpoints.
When set to 'dns', the locator uses the cluster's DNS endpoint
(e.g. gke-<uid>.<region>.gke.goog) with fallback to public IP if
no DNS endpoint is available.

Signed-off-by: Rickard Dybeck <dybeck@spotify.com>

* fix: fix relevant AI review comments

Signed-off-by: Rickard Dybeck <dybeck@spotify.com>

---------

Signed-off-by: Rickard Dybeck <dybeck@spotify.com>
2026-03-11 12:09:52 -04:00
Fredrik Adelöw f80195ec3f Add changeset for devtools cancel task
Signed-off-by: Fredrik Adelöw <freben@spotify.com>
Made-with: Cursor
Signed-off-by: Fredrik Adelöw <freben@spotify.com>
Made-with: Cursor
2026-03-11 17:01:40 +01:00
Fredrik Adelöw 85f38c29d1 devtools: Add cancel task operation to scheduled tasks
Renames useTriggerScheduledTask to useScheduledTasksOperations and adds
cancelTask alongside triggerTask, with shared isLoading/error state. Adds
CancelScheduledTask type to devtools-common and cancelScheduledTask to the
DevToolsApi interface and client, hitting the existing scheduler cancel
endpoint. The ScheduledTasksContent UI now shows both trigger and cancel
buttons per task row.

Signed-off-by: Fredrik Adelöw <freben@spotify.com>
Made-with: Cursor
2026-03-11 16:47:24 +01:00
Fredrik Adelöw 2b87d22ad4 Update plugins/catalog-backend/migrations/20260214000000_search_fk_final_entities.js
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Signed-off-by: Fredrik Adelöw <freben@gmail.com>
2026-03-11 16:19:19 +01:00
Fredrik Adelöw 57fee86920 Merge pull request #33272 from backstage/freben/perfnow
one more flake
2026-03-11 15:59:39 +01:00
Fredrik Adelöw 34af7b4551 catalog-backend: improve search FK migration test coverage
Add tests for NULL entity_id rows surviving migration, FK enforcement
rejecting invalid inserts, and down migration orphan cleanup.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Signed-off-by: Fredrik Adelöw <freben@spotify.com>
2026-03-11 15:03:06 +01:00
Fredrik Adelöw 1b69ff9c82 catalog-backend: make MySQL FK swap idempotent with retry loop
Replace the non-atomic MySQL transaction wrapper with a retry loop that
checks information_schema before dropping the FK and retries the add if
new orphan rows appear during the window between DROP and ADD.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Signed-off-by: Fredrik Adelöw <freben@spotify.com>
2026-03-11 14:56:45 +01:00
Fredrik Adelöw 09c7e49f82 catalog-backend: combine PG DROP+ADD into single ALTER TABLE, fix MySQL comment
- Combine DROP CONSTRAINT and ADD CONSTRAINT into a single ALTER TABLE
  statement for PostgreSQL, eliminating the brief window where no FK exists
- Reword MySQL transaction comment to clarify that ALTER TABLE causes
  implicit commits in InnoDB, so the wrapper doesn't provide full atomicity

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Signed-off-by: Fredrik Adelöw <freben@spotify.com>
2026-03-11 14:43:10 +01:00
Fredrik Adelöw 89a1c313d0 catalog-backend: address review comments on search FK migration
- Close PG race window: drop old FK and add NOT VALID FK before batch
  cleanup, so no new orphans can be inserted during cleanup
- Extract batch-delete helpers (batchDeleteOrphansPg, batchDeleteOrphansMysql)
  to reduce duplication across up/down and dialects
- Fix ShareUpdateExclusiveLock comment to be more precise
- Make changeset message more descriptive

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Signed-off-by: Fredrik Adelöw <freben@spotify.com>
2026-03-11 14:16:25 +01:00
renovate[bot] 28f5462bd8 chore(deps): update dependency sort-package-json to v3
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-03-11 13:05:08 +00:00
Fredrik Adelöw 1ecf82a5c2 catalog-backend: wrap MySQL/SQLite migration branches in explicit transactions
The search FK migration uses transaction: false for PostgreSQL's benefit,
but this left MySQL and SQLite branches non-atomic. A failure between
dropForeign and the new addForeign would leave the table with no FK
constraint. Wrap those branches in explicit knex.transaction() calls.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Signed-off-by: Fredrik Adelöw <freben@spotify.com>
2026-03-11 14:00:52 +01:00
Fredrik Adelöw 3644b725f8 add changeset
Signed-off-by: Fredrik Adelöw <freben@spotify.com>
2026-03-11 13:58:44 +01:00
Patrik Oldsberg f7f54fca9d Merge pull request #33277 from backstage/rugvip/fix-agents-md-key-directories
AGENTS.md: fix duplicate /packages/app entry in Key Directories
2026-03-11 13:48:41 +01:00
renovate[bot] 2bc7595dfa chore(deps): update dependency snyk-nodejs-lockfile-parser to v2
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-03-11 12:41:43 +00:00
benjdlambert 26b5f7a5f9 chore: fix main build
Signed-off-by: benjdlambert <ben@blam.sh>
2026-03-11 13:41:01 +01:00
Ben Lambert e9b6e978f1 Merge commit from fork
* fix: prevent SSRF via redirect in CIMD metadata fetch

* fix: prevent SSRF via redirect in CIMD metadata fetch

* fix: add redirect target listener to SSRF redirect test
2026-03-11 13:34:25 +01:00
Ben Lambert 4f5ed06dd1 Merge commit from fork 2026-03-11 13:33:31 +01:00
Ben Lambert 0f9d673e82 Merge commit from fork
* Fix redirect URI allowlist bypass via URL userinfo syntax

* Validate redirect URIs against normalized origin+pathname
2026-03-11 13:33:00 +01:00
renovate[bot] b9a41c0a22 chore(deps): update dependency @uiw/react-codemirror to v4.25.8
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-03-11 12:14:09 +01:00
renovate[bot] 6ea57c4fed chore(deps): update dependency @uiw/codemirror-themes to v4.25.8
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-03-11 12:13:27 +01:00
Fredrik Adelöw 65364716da fix: add NULL safety and idempotent DROP CONSTRAINT to search FK migration
Prevent orphan cleanup queries from incorrectly matching rows with NULL
entity_id via LEFT JOIN, and use DROP CONSTRAINT IF EXISTS for safer
partial re-runs given transaction: false.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Signed-off-by: Fredrik Adelöw <freben@spotify.com>
2026-03-11 11:53:28 +01:00
Fredrik Adelöw 03b72362a9 Merge pull request #33283 from backstage/freben/dependabot-approve-lockonly
chore(ci): auto-approve yarn.lock-only dependabot PRs
2026-03-11 11:41:17 +01:00
Fredrik Adelöw da08dd1a8b Merge pull request #33244 from backstage/renovate/eslint-monorepo
chore(deps): update dependency eslint to v9.39.4
2026-03-11 11:24:03 +01:00
Fredrik Adelöw 22475eaba9 Merge pull request #33237 from backstage/renovate/shiki-monorepo
chore(deps): update shiki monorepo to v3.23.0
2026-03-11 11:23:45 +01:00
Fredrik Adelöw c08e4daf24 Merge pull request #33178 from backstage/renovate/postcss-8.x-lockfile
chore(deps): update dependency postcss to v8.5.8
2026-03-11 11:23:27 +01:00
Fredrik Adelöw 96cbf33e12 Merge pull request #33276 from backstage/dependabot/npm_and_yarn/hono-4.12.7
chore(deps): bump hono from 4.12.5 to 4.12.7
2026-03-11 11:22:06 +01:00
backstage-goalie[bot] f969ed66e1 Merge pull request #33274 from backstage/renovate/npm-tar-vulnerability
chore(deps): update dependency tar to v7.5.11 [security]
2026-03-11 10:21:27 +00:00
backstage-goalie[bot] a55682b2c4 Merge pull request #33266 from backstage/renovate/knip-5.x-lockfile
chore(deps): update dependency knip to v5.86.0
2026-03-11 10:21:23 +00:00
Fredrik Adelöw 040551d99b chore(ci): auto-approve yarn.lock-only dependabot PRs
Add the same auto-approval step that the renovate workflow already has,
so that dependabot PRs that only touch yarn.lock files get approved
automatically.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Signed-off-by: Fredrik Adelöw <freben@spotify.com>
2026-03-11 11:20:17 +01:00
renovate[bot] 9148bbaf88 chore(deps): update dependency motion to v12.35.1
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-03-11 11:12:10 +01:00
Fredrik Adelöw 42a42d5625 fix: add JSDoc type annotation for MySQL orphan ID mapping
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Signed-off-by: Fredrik Adelöw <freben@spotify.com>
2026-03-11 11:06:57 +01:00
Fredrik Adelöw ffe5febfd6 fix: use LEFT JOIN for MySQL batch deletes in search FK migration
Address review feedback: replace NOT IN subquery with LEFT JOIN for
MySQL batch deletes. Since MySQL doesn't support LIMIT in multi-table
DELETE, orphan entity_ids are found via SELECT first, then deleted in
a separate statement.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Signed-off-by: Fredrik Adelöw <freben@spotify.com>
2026-03-11 11:04:52 +01:00
Fredrik Adelöw b4e28e1c27 fix(catalog): make search FK migration safe for large databases
The search FK migration previously ran all DDL and a bulk DELETE in a
single transaction, holding AccessExclusiveLock for the entire duration.
On large tables this blocks all reads for potentially minutes or hours.

This restructures the migration per database engine:
- PostgreSQL: batch-deletes orphans before DDL, uses NOT VALID to skip
  full table scan under AccessExclusiveLock, then VALIDATE CONSTRAINT
  under the weaker ShareUpdateExclusiveLock
- MySQL: batch-deletes orphans with LIMIT before DDL
- SQLite: unchanged simple approach (no locking concerns)

Also sets transaction: false so the batched deletes run outside the
DDL transaction.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Signed-off-by: Fredrik Adelöw <freben@spotify.com>
2026-03-11 10:58:42 +01:00
Patrik Oldsberg 70183e9c55 AGENTS.md: fix duplicate /packages/app entry in Key Directories
Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
Made-with: Cursor
2026-03-11 08:37:44 +01:00
dependabot[bot] 3772043284 chore(deps): bump hono from 4.12.5 to 4.12.7
Bumps [hono](https://github.com/honojs/hono) from 4.12.5 to 4.12.7.
- [Release notes](https://github.com/honojs/hono/releases)
- [Commits](https://github.com/honojs/hono/compare/v4.12.5...v4.12.7)

---
updated-dependencies:
- dependency-name: hono
  dependency-version: 4.12.7
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-03-11 02:16:09 +00:00
renovate[bot] b106887f5b chore(deps): update dependency tar to v7.5.11 [security]
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-03-10 23:54:34 +00:00
Fredrik Adelöw 85ec4d7314 fix: remove tautological assertion in burst length test
Replace the self-referencing callCount assertion with a concrete
expected value of 3, derived from the mocked time progression.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Signed-off-by: Fredrik Adelöw <freben@spotify.com>
2026-03-10 20:12:49 +01:00
Fredrik Adelöw 90ea210559 Merge pull request #33100 from backstage/changeset-release/master
Version Packages (next)
2026-03-10 19:45:31 +01:00
Fredrik Adelöw cbcc344945 one more flake
Signed-off-by: Fredrik Adelöw <freben@spotify.com>
2026-03-10 19:43:23 +01:00
github-actions[bot] ed7c4e3bef Version Packages (next) 2026-03-10 17:34:12 +00:00
Patrik Oldsberg 1097f68579 Merge pull request #33181 from backstage/rugvip/cli-boolean-flag-negation
cli: enable --no- prefix negation for boolean flags
2026-03-10 18:27:53 +01:00