Skip to content

fix(spotify): PLUG-4710 unbreak searchArtists after Feb 2026 Web API changes - #111

Merged
clarkd merged 3 commits into
mainfrom
work/jd/PLUG-4710
Aug 11, 2026
Merged

fix(spotify): PLUG-4710 unbreak searchArtists after Feb 2026 Web API changes#111
clarkd merged 3 commits into
mainfrom
work/jd/PLUG-4710

Conversation

@jame2O

@jame2O jame2O commented Aug 11, 2026

Copy link
Copy Markdown
Contributor

Problem

Spotify's Feb 2026 Web API overhaul (enforced for all Dev Mode apps since 9 Mar 2026) removed popularity and followers from artist objects in /search responses, and cut the /search limit parameter from default 20 / max 50 down to default 5 / max 10.

searchArtists explicitly mapped popularity and followers.total as typed, displayed metadata columns, so the stream came back blank/broken. searchTracks already had defensive handling for the field removals, but neither stream pinned limit.

Fixes PLUG-4710.

Changes

The fix

  • searchArtists.json — removed the followers.total ("Followers") and popularity metadata mappings. The {"pattern": ".*"} catch-all stays, so tenants on legacy/Extended Quota access that still receive those fields keep seeing them — just untyped, rather than as broken declared columns.
  • searchArtists.json / searchTracks.json — added an explicit limit=10 getArg so both streams return the new maximum instead of silently falling back to the new default of 5.
  • metadata.json — 1.0.2 → 1.0.3 (patch: bug fix, no stream removed or renamed).

Required to deploy at all

  • recentlyPlayed.json / topTracks.json — migrated the legacy flat pagingConfig_* keys to the current nested paging schema. Unrelated to PLUG-4710, but the current CLI validator rejects the old keys with 9 errors, so Spotify v1 could not be deployed by anyone until this was fixed. Same-semantics translation; pagingConfig_offset_base: 1 was dead config under both none and nextUrl modes and is dropped.

Deliberately not done

No post-request script was added to searchArtists. The ticket suggested mirroring searchTracks.js, but that script exists to strip available_markets, which artist objects don't carry — and deleting popularity/followers in a script would discard data for tenants that legitimately still receive it. Per the plugin authoring guidance, a stream that doesn't need a script should stay on pathToData alone.

Testing

squaredup validate passes. Deployed to the Les Bleus dev tenant as v1.0.3 (plugin-jhEuPXVFu725TekVbcb0).

  • Artists — rows populate; no Followers/Popularity columns; up to 10 results
  • Tracks — up to 10 results rather than 5
  • Recently Played / Top Tracks — paging still behaves

Follow-up

defaultContent/trendsTopItems.dash.json does ORDER BY popularity DESC against topTracks. Track popularity is deprecated under the same Feb 2026 change, so that tile is likely affected too — out of scope here, worth its own ticket.

🤖 Somewhat generated with Claude Code

Summary by CodeRabbit

  • Improvements
    • Improved Spotify recently played and top tracks pagination.
    • Spotify top tracks now load up to 50 items per request.
    • Spotify artist and track searches now return up to 10 results per request.
    • Simplified artist metadata to focus on supported information.
  • Chores
    • Updated the Spotify plugin version to 1.0.3.

@coderabbitai

coderabbitai Bot commented Aug 11, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

📝 Walkthrough

Walkthrough

Spotify data stream definitions now set search result limits, simplify artist metadata, update pagination configuration for recently played and top tracks, and increment the plugin version to 1.0.3.

Changes

Spotify stream configuration

Layer / File(s) Summary
Search request configuration
plugins/Spotify/v1/dataStreams/searchArtists.json, plugins/Spotify/v1/dataStreams/searchTracks.json
Artist and track searches now request 10 results. Artist metadata retains only the wildcard pattern.
Pagination and version configuration
plugins/Spotify/v1/dataStreams/recentlyPlayed.json, plugins/Spotify/v1/dataStreams/topTracks.json, plugins/Spotify/v1/metadata.json
Recently played uses none pagination. Top tracks uses next-URL pagination with a page size of 50. The plugin version is 1.0.3.
🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Title check ✅ Passed The title clearly identifies the Spotify plugin fix for the February 2026 Web API changes.
Description check ✅ Passed The description clearly explains the problem, changes, validation, testing status, and follow-up scope for the existing plugin change.

Comment @coderabbitai help to get the list of available commands.

@github-actions

Copy link
Copy Markdown

🧩 Plugin PR Summary

📦 Modified Plugins

  • plugins/Spotify/v1

📋 Results

Step Status
Validation ✅ Passed
Deployment 🚀 Deployed

🔍 Validation Details

spotify
{
  "valid": true,
  "pluginName": "spotify",
  "pluginType": "cloud",
  "summary": {
    "Data Streams": 6,
    "Import Definitions": 0,
    "Correlation Rules": 0,
    "UI Configuration": true,
    "Has Icon": true,
    "Has Default Content": true,
    "Config Validation": false,
    "Custom Types": false
  }
}

@jame2O
jame2O requested a review from vinbab August 11, 2026 09:40
@jame2O jame2O added bug Something isn't working plugin: Spotify labels Aug 11, 2026
@jame2O
jame2O marked this pull request as ready for review August 11, 2026 09:44
@jame2O
jame2O requested a review from a team August 11, 2026 09:44
@clarkd
clarkd merged commit 54e5019 into main Aug 11, 2026
1 check passed
@clarkd
clarkd deleted the work/jd/PLUG-4710 branch August 11, 2026 15:54
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug Something isn't working plugin: Spotify

Development

Successfully merging this pull request may close these issues.

2 participants