There are 2 updates.
 
 
Release Notes Application / cid:jira-generated-image-avatar-d2cc2bed-2a94-439a-af15-942b0f70e2c0 RN-133 Open

Load the changes a search finds in one call, and stop encoding the REST changes URL into the getChanges syntax

 
View issue   ยท   Add comment
 

2 updates

 
cid:jira-generated-image-avatar-32b87405-d953-4f41-b55e-87551abf2059 Changes by Vincent Massol on 30/Sep/26 23:09
 
Summary: Match Load the REST change filters exactly changes a search finds in one call, and refuse stop encoding the values that cannot be read REST changes URL into the getChanges syntax
Description: The {{GET /wikis/\{wikiName\}/releasenotes/\{product\}/\{version\}/changes}} endpoint reads encodes the release note of its filters loosely URL into the text syntax of the {{getChanges}} wiki macro ({{"=" + product}}, the aggregated versions joined with commas) so that {{ChangeQueryParser}} can decode it again. It then reads each change it found a second time, checking the view right again for each one.

Proposed
:

*
a mistyped value, e.g. the product and the version (or the aggregated versions) of the URL are set on the {{ ChangeQuery}} as typed filters;
* the client filters ({{
audience =users }}, {{ category}}, {{ importance =huge }}, {{containsScreenshots =yes }} or , {{limit =ten }}, is not refused: an audience or importance filter silently matches no change (the client gets an empty list it cannot tell from a real one {{offset}} ) , and the others silently fall back to keep their default;
* a value is matched as a pattern (
current meaning. They are still read by {{ % ChangeQueryParser }} and in the {{ _ getChanges }} are wildcards) and may carry an operator prefix filter language ({{ >=high % }} ) wildcards , which is the syntax of the {{ getChanges = }} wiki macro and not what the endpoint documents ("the audiences to keep , comma separated");
* a parameter left empty (
{{ audience > =}} ) matches no change at all rather than filtering nothing.

The endpoint also reads each returned change a second time
, checking the view right again for each one.

Proposed:

* each listed value is matched exactly; an empty parameter filters nothing;
* an unreadable value (unknown audience or importance
{{>}} , a screenshot filter other than {{ true <= }} / , {{ false < }} prefixes , a limit that is not a whole number of at least 1 comma lists , a negative offset) is answered with e.g. {{ 400 importance=>=medium }} ), and a message naming the value values it cannot use behave as before ;
* a new {{ChangeManager#searchAndLoad(ChangeQuery, Predicate)}} (returning a {{LoadedChangeSearchResult}}) gives the changes with their pages in one call
, the . The view right being is checked once, by the search filter, before the result is paged (as done for RN-122).

The {{getChanges}} wiki macro and its syntax are unchanged.