Skip to content

out_opensearch: escape customize_template values as JSON strings - #194

Open
kenhys wants to merge 1 commit into
mainfrom
fix-customize-template
Open

kenhys wants to merge 1 commit into
mainfrom
fix-customize-template

Conversation

@kenhys

@kenhys kenhys commented Sep 16, 2026

Copy link
Copy Markdown
Contributor

Before: get_custom_template put each customize_template value into the template text with a plain gsub. A value can be expanded from a tag or a record field, so a " in it closed the JSON string it sat in and the rest was read as more template keys. A log sender could add index_patterns, order and aliases and have fluentd PUT that index template with its own credentials. gsub also read backslash sequences such as \0 in the replacement.

After: the value is escaped as JSON string content before it is substituted, and the block form of gsub keeps the replacement literal. A value can only become one string in the template.

Before: get_custom_template put each customize_template value into the
template text with a plain gsub. A value can be expanded from a tag or
a record field, so a `"` in it closed the JSON string it sat in and the
rest was read as more template keys. A log sender could add
index_patterns, order and aliases and have fluentd PUT that index
template with its own credentials. gsub also read backslash sequences
such as \0 in the replacement.

After: the value is escaped as JSON string content before it is
substituted, and the block form of gsub keeps the replacement literal.
A value can only become one string in the template.

Co-Authored-By: Claude <noreply@anthropic.com>
Signed-off-by: Kentaro Hayashi <hayashi@clear-code.com>
@kenhys
kenhys requested a review from Watson1978 September 17, 2026 01:35
@kenhys
kenhys marked this pull request as ready for review September 17, 2026 03:24
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant