@@ -40,9 +40,21 @@ export class NetflowDomain extends Domain {
4040 ?. split ( ';' )
4141 . map ( ( filter ) => {
4242 const [ , key , operator , value ] = filter . match ( / ^ \s * ( [ ^ ! = \s ] + ) \s * ( ! ? = ~ ? ) \s * ( .+ ) \s * $ / ) || [ ] ;
43- // Removes surrounding quotes
43+
44+ if ( ! key || ! linkToQueryName [ key ] ) return '' ;
45+
46+ // Check if value contains multiple comma-separated quoted strings like "val1","val2"
47+ const quotedValues = value ?. match ( / " ( [ ^ " ] + ) " / g) ;
48+ if ( quotedValues && quotedValues . length > 1 ) {
49+ // Extract the actual values (remove quotes)
50+ const values = quotedValues . map ( v => v . slice ( 1 , - 1 ) ) ;
51+ // Convert to LogQL regex syntax with OR operator
52+ return `${ linkToQueryName [ key ] } =~"${ values . join ( '|' ) } "` ;
53+ }
54+
55+ // Single value - removes surrounding quotes
4456 const trimmedValue = value ?. replace ( / ^ " ( .* ) " $ / , '$1' ) ;
45- return linkToQueryName [ key ] ? `${ linkToQueryName [ key ] } ${ operator } "${ trimmedValue } "` : '' ;
57+ return `${ linkToQueryName [ key ] } ${ operator } "${ trimmedValue } "` ;
4658 } )
4759 . filter ( ( s ) => s )
4860 . join ( ',' ) ;
@@ -61,7 +73,17 @@ export class NetflowDomain extends Domain {
6173 const [ , key , operator , value ] =
6274 filter . match ( / ^ \s * ( [ ^ ! = \s ] + ) \s * ( ! ? = ~ ? ) \s * " ( .+ ) " \s * $ / ) || [ ] ;
6375 if ( ! key ) throw this . badQuery ( query , 'bad selector format' ) ;
64- return queryToURLName [ key ] ? `${ queryToURLName [ key ] } ${ operator } ${ value } ` : '' ;
76+
77+ // Convert LogQL regex pattern to URL format for netflow
78+ if ( queryToURLName [ key ] ) {
79+ // If operator is =~ and value contains |, convert to comma-separated quoted format
80+ if ( operator === '=~' && value . includes ( '|' ) ) {
81+ const values = value . split ( '|' ) . map ( v => `"${ v } "` ) . join ( ',' ) ;
82+ return `${ queryToURLName [ key ] } =${ values } ` ;
83+ }
84+ return `${ queryToURLName [ key ] } ${ operator } ${ value } ` ;
85+ }
86+ return '' ;
6587 } )
6688 . filter ( ( s ) => s )
6789 . join ( ';' ) ;
0 commit comments