chore: remove deprecated /api/plex legacy endpoints#2884
Merged
enoch85 merged 2 commits intoMay 13, 2026
Merged
Conversation
Collaborator
|
I will fix this as well. ;) |
2e72add to
4b7b9bf
Compare
The /api/plex endpoints were replaced by /api/media-server in #2266. All 19 legacy routes have been serving deprecation headers since then. The UI has zero references to /api/plex and fully uses /api/media-server. - Delete plex-api-legacy.controller.ts and its spec - Remove PlexApiLegacyController from PlexApiModule controllers - Remove the MediaServerModule import from PlexApiModule — it was only needed by the legacy controller, eliminating the circular forwardRef between PlexApiModule and MediaServerModule - Replace forwardRef(() => PlexApiModule) with a direct PlexApiModule import in MediaServerModule now that the cycle is gone - Clean up the @deprecated JSDoc on PlexApiModule - Drop README mentions of /api/plex as a transition layer Closes #2428 BREAKING CHANGE: All /api/plex/* HTTP routes are removed and now return 404. External integrations must migrate to /api/media-server. See the endpoint mapping in #2428 for the full route translation. Internal PlexApiService (used by the Plex adapter) is unaffected.
4b7b9bf to
8111125
Compare
The /api/plex endpoints were replaced by /api/media-server in #2266. All 19 legacy routes have been serving deprecation headers since then. The UI has zero references to /api/plex and fully uses /api/media-server. - Delete plex-api-legacy.controller.ts and its spec - Remove PlexApiLegacyController from PlexApiModule controllers - Remove the MediaServerModule import from PlexApiModule — it was only needed by the legacy controller, eliminating the circular forwardRef between PlexApiModule and MediaServerModule - Replace forwardRef(() => PlexApiModule) with a direct PlexApiModule import in MediaServerModule now that the cycle is gone - Clean up the @deprecated JSDoc on PlexApiModule - Drop README mentions of /api/plex as a transition layer All /api/plex/* HTTP routes now return 404. External integrations should migrate to /api/media-server. Internal PlexApiService (used by the Plex adapter, getters, settings, and overlay provider) is unaffected. Closes #2428
57778f0 to
d6d9fa6
Compare
maintainerr-automation Bot
added a commit
that referenced
this pull request
May 14, 2026
* build(deps): bump the nestjs group with 4 updates (#2892) Bumps the nestjs group with 4 updates: [@nestjs/common](https://github.com/nestjs/nest/tree/HEAD/packages/common), [@nestjs/core](https://github.com/nestjs/nest/tree/HEAD/packages/core), [@nestjs/platform-express](https://github.com/nestjs/nest/tree/HEAD/packages/platform-express) and [@nestjs/testing](https://github.com/nestjs/nest/tree/HEAD/packages/testing). Updates `@nestjs/common` from 11.1.19 to 11.1.20 - [Release notes](https://github.com/nestjs/nest/releases) - [Commits](https://github.com/nestjs/nest/commits/v11.1.20/packages/common) Updates `@nestjs/core` from 11.1.19 to 11.1.20 - [Release notes](https://github.com/nestjs/nest/releases) - [Commits](https://github.com/nestjs/nest/commits/v11.1.20/packages/core) Updates `@nestjs/platform-express` from 11.1.19 to 11.1.20 - [Release notes](https://github.com/nestjs/nest/releases) - [Commits](https://github.com/nestjs/nest/commits/v11.1.20/packages/platform-express) Updates `@nestjs/testing` from 11.1.19 to 11.1.20 - [Release notes](https://github.com/nestjs/nest/releases) - [Commits](https://github.com/nestjs/nest/commits/v11.1.20/packages/testing) --- updated-dependencies: - dependency-name: "@nestjs/common" dependency-version: 11.1.20 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: nestjs - dependency-name: "@nestjs/core" dependency-version: 11.1.20 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: nestjs - dependency-name: "@nestjs/platform-express" dependency-version: 11.1.20 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: nestjs - dependency-name: "@nestjs/testing" dependency-version: 11.1.20 dependency-type: direct:development update-type: version-update:semver-patch dependency-group: nestjs ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * build(deps-dev): bump jest from 30.3.0 to 30.4.2 (#2893) Bumps [jest](https://github.com/jestjs/jest/tree/HEAD/packages/jest) from 30.3.0 to 30.4.2. - [Release notes](https://github.com/jestjs/jest/releases) - [Changelog](https://github.com/jestjs/jest/blob/main/CHANGELOG.md) - [Commits](https://github.com/jestjs/jest/commits/v30.4.2/packages/jest) --- updated-dependencies: - dependency-name: jest dependency-version: 30.4.2 dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * build(deps): bump zod from 4.4.1 to 4.4.3 (#2894) Bumps [zod](https://github.com/colinhacks/zod) from 4.4.1 to 4.4.3. - [Release notes](https://github.com/colinhacks/zod/releases) - [Commits](colinhacks/zod@v4.4.1...v4.4.3) --- updated-dependencies: - dependency-name: zod dependency-version: 4.4.3 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * build(deps-dev): bump @tanstack/eslint-plugin-query (#2895) Bumps [@tanstack/eslint-plugin-query](https://github.com/TanStack/query/tree/HEAD/packages/eslint-plugin-query) from 5.100.7 to 5.100.10. - [Release notes](https://github.com/TanStack/query/releases) - [Changelog](https://github.com/TanStack/query/blob/main/packages/eslint-plugin-query/CHANGELOG.md) - [Commits](https://github.com/TanStack/query/commits/HEAD/packages/eslint-plugin-query) --- updated-dependencies: - dependency-name: "@tanstack/eslint-plugin-query" dependency-version: 5.100.10 dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * ci(docs-drift): add open_pr input to assign Copilot for drafting docs PR Adds an open_pr workflow_dispatch input. When enabled on a drift run, the workflow appends drafting guidance (work from local clones, read full files, source of truth is the listed commits, skip already-documented items, doc-only minimal edits, structured PR description) to the drift report before upserting the tracking issue on Maintainerr_docs, then assigns Copilot to that issue so the coding agent drafts the PR. * chore: wrap long lines in docs_drift.yml to satisfy yamllint (#2896) The Copilot guidance bullets exceeded the .yamllint 160-character limit. Wrapped each bullet onto continuation lines indented to align with the list marker so the rendered markdown stays a single paragraph per bullet. * chore: remove deprecated /api/plex legacy endpoints (#2884) * fix(release): backfill missing new contributor * docs(changelog): restore missing release headers * fix(sonarr): don't require never-downloaded seasons to be unmonitored before show cleanup (#2897) --------- Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: maintainerr-automation[bot] <261505141+maintainerr-automation[bot]@users.noreply.github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: enoch85 <mailto@danielhansson.nu> Co-authored-by: Anders Eriksson <36226327+blixten85@users.noreply.github.com>
Contributor
|
🎉 This PR is included in version 3.11.2 🎉 The release is available on GitHub release Your semantic-release bot 📦🚀 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes #2428.
Changes
plex-api-legacy.controller.tsand its specPlexApiLegacyControllerfromPlexApiModule.controllersMediaServerModuleimport fromPlexApiModule— it was only needed by the legacy controller, eliminating the circularforwardRefbetweenPlexApiModuleandMediaServerModuleforwardRef(() => PlexApiModule)with a directPlexApiModuleimport inMediaServerModule@deprecatedJSDoc onPlexApiModule/api/plexas a transition layerBehavior change
All
/api/plex/*HTTP routes return 404. External integrations should migrate to/api/media-server. InternalPlexApiService(used by the Plex adapter, getters, settings, and overlay provider) is unaffected.The legacy routes have been serving deprecation headers (
X-Deprecated,Deprecation,Link) since #2266; this PR finishes that deprecation cycle. Released as a regularchore:so semantic-release will not bump to 4.0 — version stays on the 3.x line.Acceptance criteria
/api/plex/*routes return 404PlexApiServicestill works for internal Plex adapter usage (untouched)/api/media-serverendpoints (417 impacted-module tests pass)forwardRefbetweenPlexApiModuleandMediaServerModuleeliminatedMigration
GET /api/plex/librariesGET /api/media-server/librariesGET /api/plex/library/:id/content/:pageGET /api/media-server/library/:id/content?page=N&limit=NGET /api/plex/meta/:idGET /api/media-server/meta/:idGET /api/plex/usersGET /api/media-server/usersGET /api/plex/search/:inputGET /api/media-server/search/:query