Skip to content

chore: remove deprecated /api/plex legacy endpoints#2884

Merged
enoch85 merged 2 commits into
Maintainerr:developmentfrom
blixten85:claude/remove-legacy-plex-api-endpoints
May 13, 2026
Merged

chore: remove deprecated /api/plex legacy endpoints#2884
enoch85 merged 2 commits into
Maintainerr:developmentfrom
blixten85:claude/remove-legacy-plex-api-endpoints

Conversation

@blixten85

@blixten85 blixten85 commented May 12, 2026

Copy link
Copy Markdown
Contributor

Closes #2428.

Changes

  • Delete plex-api-legacy.controller.ts and its spec
  • Remove PlexApiLegacyController from PlexApiModule.controllers
  • Remove 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
  • Clean up the @deprecated JSDoc on PlexApiModule
  • Drop README mentions of /api/plex as a transition layer

Behavior change

All /api/plex/* HTTP routes return 404. External integrations should migrate to /api/media-server. Internal PlexApiService (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 regular chore: so semantic-release will not bump to 4.0 — version stays on the 3.x line.

Acceptance criteria

  • All /api/plex/* routes return 404
  • PlexApiService still works for internal Plex adapter usage (untouched)
  • No regressions in existing /api/media-server endpoints (417 impacted-module tests pass)
  • Circular forwardRef between PlexApiModule and MediaServerModule eliminated

Migration

Old endpoint New endpoint
GET /api/plex/libraries GET /api/media-server/libraries
GET /api/plex/library/:id/content/:page GET /api/media-server/library/:id/content?page=N&limit=N
GET /api/plex/meta/:id GET /api/media-server/meta/:id
GET /api/plex/users GET /api/media-server/users
GET /api/plex/search/:input GET /api/media-server/search/:query
(full mapping in issue #2428)

@blixten85 blixten85 requested a review from enoch85 as a code owner May 12, 2026 17:26
@enoch85 enoch85 added this to the 3.12.0 milestone May 12, 2026
@enoch85

enoch85 commented May 13, 2026

Copy link
Copy Markdown
Collaborator

I will fix this as well. ;)

@enoch85 enoch85 force-pushed the claude/remove-legacy-plex-api-endpoints branch 3 times, most recently from 2e72add to 4b7b9bf Compare May 13, 2026 18:04
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.
@enoch85 enoch85 force-pushed the claude/remove-legacy-plex-api-endpoints branch from 4b7b9bf to 8111125 Compare May 13, 2026 18:13
@enoch85 enoch85 changed the title feat: remove deprecated /api/plex legacy endpoints chore!: remove deprecated /api/plex legacy endpoints May 13, 2026
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
@enoch85 enoch85 force-pushed the claude/remove-legacy-plex-api-endpoints branch from 57778f0 to d6d9fa6 Compare May 13, 2026 18:19
@enoch85 enoch85 changed the title chore!: remove deprecated /api/plex legacy endpoints chore: remove deprecated /api/plex legacy endpoints May 13, 2026
@enoch85 enoch85 merged commit 8076f1b into Maintainerr:development May 13, 2026
11 of 12 checks passed
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>
@maintainerr-automation

Copy link
Copy Markdown
Contributor

🎉 This PR is included in version 3.11.2 🎉

The release is available on GitHub release

Your semantic-release bot 📦🚀

@enoch85 enoch85 modified the milestones: 3.12.0, 3.11.2 May 25, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Deprecate and remove /api/plex legacy endpoints

2 participants