From 36c9546bc609d18e40f13074aff09519638c47f6 Mon Sep 17 00:00:00 2001 From: Markus Zehnder Date: Wed, 25 Mar 2026 18:16:05 +0100 Subject: [PATCH 1/2] refactor: string length requirements for BrowseMediaItem string fields --- core-api/rest/CHANGELOG.md | 4 ++++ core-api/rest/UCR-core-openapi.yaml | 8 +++++++- core-api/websocket/CHANGELOG.md | 4 ++++ core-api/websocket/UCR-core-asyncapi.yaml | 8 +++++++- integration-api/UCR-integration-asyncapi.yaml | 8 +++++++- 5 files changed, 29 insertions(+), 3 deletions(-) diff --git a/core-api/rest/CHANGELOG.md b/core-api/rest/CHANGELOG.md index 483fd28..84b9399 100644 --- a/core-api/rest/CHANGELOG.md +++ b/core-api/rest/CHANGELOG.md @@ -10,6 +10,10 @@ This section contains unreleased changes which will be part of an upcoming relea --- +## 0.45.2 +### Changed +- Minimal string length requirements for BrowseMediaItem string fields. + ## 0.45.1 ### Added - Media browsing and searching ([feature-and-bug-tracker#70](https://github.com/unfoldedcircle/feature-and-bug-tracker/issues/70)). diff --git a/core-api/rest/UCR-core-openapi.yaml b/core-api/rest/UCR-core-openapi.yaml index c695359..bdc5e64 100644 --- a/core-api/rest/UCR-core-openapi.yaml +++ b/core-api/rest/UCR-core-openapi.yaml @@ -1,7 +1,7 @@ openapi: 3.0.3 info: title: Remote Two/3 REST Core-API - version: 0.45.1 + version: 0.45.2 contact: name: API Support url: 'https://github.com/unfoldedcircle/core-api/issues' @@ -14820,22 +14820,27 @@ components: media_id: description: Unique identifier of the media item. Integration dependent. type: string + minLength: 1 maxLength: 255 title: description: Display name. type: string + minLength: 1 maxLength: 255 subtitle: description: Optional subtitle. type: string + minLength: 1 maxLength: 255 artist: description: Optional artist name. type: string + minLength: 1 maxLength: 255 album: description: Optional album name. type: string + minLength: 1 maxLength: 255 media_class: $ref: '#/components/schemas/MediaClass' @@ -14862,6 +14867,7 @@ components: Use the following URI prefix to use a provided icon: `icon://uc:`, for example, `icon://uc:music`. Please use a URL whenever possible. Encoded images should be as small as possible. type: string + minLength: 1 maxLength: 32768 duration: description: Duration in seconds. diff --git a/core-api/websocket/CHANGELOG.md b/core-api/websocket/CHANGELOG.md index 15f0622..526297d 100644 --- a/core-api/websocket/CHANGELOG.md +++ b/core-api/websocket/CHANGELOG.md @@ -10,6 +10,10 @@ This section contains unreleased changes which will be part of an upcoming relea --- +## 0.35.2-beta +### Changed +- Minimal string length requirements for BrowseMediaItem string fields. + ## 0.35.1-beta ### Added - Media browsing and searching ([feature-and-bug-tracker#70](https://github.com/unfoldedcircle/feature-and-bug-tracker/issues/70)). diff --git a/core-api/websocket/UCR-core-asyncapi.yaml b/core-api/websocket/UCR-core-asyncapi.yaml index 4430656..aaa8468 100644 --- a/core-api/websocket/UCR-core-asyncapi.yaml +++ b/core-api/websocket/UCR-core-asyncapi.yaml @@ -8,7 +8,7 @@ asyncapi: 2.2.0 id: 'urn:com:unfoldedcircle:core' info: title: Remote Two/3 WebSocket Core-API - version: '0.35.1-beta' + version: '0.35.2-beta' contact: name: API Support url: https://github.com/unfoldedcircle/core-api/issues @@ -11030,22 +11030,27 @@ components: media_id: description: Unique identifier of the media item. Integration dependent. type: string + minLength: 1 maxLength: 255 title: description: Display name. type: string + minLength: 1 maxLength: 255 subtitle: description: Optional subtitle. type: string + minLength: 1 maxLength: 255 artist: description: Optional artist name. type: string + minLength: 1 maxLength: 255 album: description: Optional album name. type: string + minLength: 1 maxLength: 255 media_class: $ref: '#/components/schemas/MediaClass' @@ -11072,6 +11077,7 @@ components: Use the following URI prefix to use a provided icon: `icon://uc:`, for example, `icon://uc:music`. Please use a URL whenever possible. Encoded images should be as small as possible. type: string + minLength: 1 maxLength: 32768 duration: description: Duration in seconds. diff --git a/integration-api/UCR-integration-asyncapi.yaml b/integration-api/UCR-integration-asyncapi.yaml index 98d4990..d504490 100644 --- a/integration-api/UCR-integration-asyncapi.yaml +++ b/integration-api/UCR-integration-asyncapi.yaml @@ -8,7 +8,7 @@ asyncapi: 2.2.0 id: 'urn:com:unfoldedcircle:integration' info: title: Remote Two/3 WebSocket Integration API - version: '0.15.1-beta' + version: '0.15.2-beta' contact: name: API Support url: https://github.com/unfoldedcircle/core-api/issues @@ -2385,22 +2385,27 @@ components: media_id: description: Unique identifier of the media item. Integration dependent. type: string + minLength: 1 maxLength: 255 title: description: Display name. type: string + minLength: 1 maxLength: 255 subtitle: description: Optional subtitle. type: string + minLength: 1 maxLength: 255 artist: description: Optional artist name. type: string + minLength: 1 maxLength: 255 album: description: Optional album name. type: string + minLength: 1 maxLength: 255 media_class: $ref: '#/components/schemas/MediaClass' @@ -2427,6 +2432,7 @@ components: Use the following URI prefix to use a provided icon: `icon://uc:`, for example, `icon://uc:music`. Please avoid using encoded images whenever possible. Payloads should be as small as possible. type: string + minLength: 1 maxLength: 32768 duration: description: Duration in seconds. From 6c82b273fb462beba4d6774bda9b4a480e9fbb1e Mon Sep 17 00:00:00 2001 From: Markus Zehnder Date: Thu, 26 Mar 2026 19:02:55 +0100 Subject: [PATCH 2/2] fixup! refactor: string length requirements for BrowseMediaItem string fields --- core-api/rest/UCR-core-openapi.yaml | 5 +++-- core-api/websocket/UCR-core-asyncapi.yaml | 5 +++-- integration-api/UCR-integration-asyncapi.yaml | 5 +++-- 3 files changed, 9 insertions(+), 6 deletions(-) diff --git a/core-api/rest/UCR-core-openapi.yaml b/core-api/rest/UCR-core-openapi.yaml index bdc5e64..1e46942 100644 --- a/core-api/rest/UCR-core-openapi.yaml +++ b/core-api/rest/UCR-core-openapi.yaml @@ -14818,9 +14818,10 @@ components: type: object properties: media_id: - description: Unique identifier of the media item. Integration dependent. + description: | + Unique identifier of the media item. Integration dependent. + Use an empty value only for special non-playable media items, for example, a root directory in a media library or search result. type: string - minLength: 1 maxLength: 255 title: description: Display name. diff --git a/core-api/websocket/UCR-core-asyncapi.yaml b/core-api/websocket/UCR-core-asyncapi.yaml index aaa8468..6787cdd 100644 --- a/core-api/websocket/UCR-core-asyncapi.yaml +++ b/core-api/websocket/UCR-core-asyncapi.yaml @@ -11028,9 +11028,10 @@ components: type: object properties: media_id: - description: Unique identifier of the media item. Integration dependent. + description: | + Unique identifier of the media item. Integration dependent. + Use an empty value only for special non-playable media items, for example, a root directory in a media library or search result. type: string - minLength: 1 maxLength: 255 title: description: Display name. diff --git a/integration-api/UCR-integration-asyncapi.yaml b/integration-api/UCR-integration-asyncapi.yaml index d504490..7307da9 100644 --- a/integration-api/UCR-integration-asyncapi.yaml +++ b/integration-api/UCR-integration-asyncapi.yaml @@ -2383,9 +2383,10 @@ components: type: object properties: media_id: - description: Unique identifier of the media item. Integration dependent. + description: | + Unique identifier of the media item. Integration dependent. + Use an empty value only for special non-playable media items, for example, a root directory in a media library or search result. type: string - minLength: 1 maxLength: 255 title: description: Display name.