<div dir="ltr">Hello,<br><br>I've mentioned this briefly in another thread, but I’d like to start a dedicated discussion regarding the support for a "concatenated" value format in helper responses.<br><br>In a recent PR discussion (<a href="https://github.com/squid-cache/squid/pull/2395#discussion_r3022844826">https://github.com/squid-cache/squid/pull/2395#discussion_r3022844826</a>), Alex pointed out issues with using concatenated formats for passing tag values.<br><div><br></div><div>I propose adding support for a custom delimiter for concatenated values within a single KV-pair in the helper output. <br><br>The proposed syntax is:<br>    <font face="monospace"><key>=<delimiter>"<value1><delimiter><value2>..."</font><br><br>Examples:<br>    <font face="monospace">group=,"group1,group2,group3"</font><br>    <font face="monospace">clt_con_tag=;"tag1;tag2;tag3"</font><br><br>Escaping logic:<br>    If the delimiter appears inside a value within the token, it must be double-escaped (\\) by the helper. <br>For example:<br>    <font face="monospace">group=,"Staff:accountants\\,lawyers\\,security,Main_Office"</font><br>This should produce two separate annotations:<br>   <font face="monospace"> group=Staff:accountants,lawyers,security</font><br>   <font face="monospace"> group=Main_Office</font><br><br>The choice of double escaping is intentional to maintain consistency with the way <font face="monospace">strwordtok()</font> processes quoted values in Squid. <br>This approach ensures that we can preserve the underlying logic for handling values while correctly splitting the "glued" tokens.<br><br>Currently, a comma-separated format is often used de facto, but Squid stores these as a single Entry, requiring the <font face="monospace">-m</font> option for annotation checks.<br><br>Proposed Change:<br>A minor modification to <font face="monospace">Helper::Reply::parseResponseKeys()</font>.<br><br>Pros:<br>- More compact data transfer format.<br>- Proper data storage on the Squid side (separate values instead of one blob).<br>- Flexibility for plugin developers via custom delimiters.<br>- Eliminates the need for admins to manually manage the <font face="monospace">-m</font> option for these cases.<br><br>I am interested in implementing this and submitting a PR. Do you think this solution is needed and fits the project's direction?</div><div><br></div><div>Kind regards,</div><div>    Ankor.</div></div>