packages/miniflux/data_stream/feed_entry/agent/stream/cel.yml.hbs (116 lines of code) (raw):
config_version: 2
interval: {{interval}}
resource.tracer:
enabled: {{enable_request_tracer}}
filename: "../../logs/cel/http-request-trace-*.ndjson"
maxbackups: 5
resource.url: {{api_url}}
state:
api_key: {{api_key}}
batch_size: {{batch_size}}
redact:
fields:
- api_key
{{#if regex_input}}
regexp:
regex_input: '{{regex_input}}'
{{else}}
regexp:
regex_input: '^$'
{{/if}}
program: |-
state.with(
request(
"GET",
state.url + "?" + {
"limit": [string(state.batch_size)],
"order": ["id"],
"after_entry_id": [
has(state.cursor) && has(state.cursor.last_entry_id) && state.cursor.last_entry_id != null ?
string(state.cursor.last_entry_id)
:
"0",
],
}.format_query()
).with(
{
"Header":{
"X-Auth-Token": [state.api_key],
}
}
).do_request().as(resp, (resp.StatusCode != 200) ?
{
"events": {
"error": {
"code": string(resp.StatusCode),
"id": string(resp.Status),
"message": "GET " + state.url + (
size(resp.Body) != 0 ?
string(resp.Body)
:
string(resp.Status) + ' (' + string(resp.StatusCode) + ')'
),
},
},
"want_more": false,
}
:
bytes(resp.Body).decode_json().as(body, !has(body.entries) ?
{
"events": [],
"want_more": false,
}
:
{
"events": body.entries.map(feed_entry,
(feed_entry.content.encode_json().re_find_all("regex_input").size() == 0) ?
[{
"message": feed_entry.encode_json()
}]
:
feed_entry.content.encode_json().re_find_all("regex_input").map(e, e.to_upper()).as(ids, ids.zip(ids).keys()).map(
feed_entry_split,
{
"message": feed_entry.with({
"feed_entry_split": feed_entry_split
}).encode_json(),
"feed_entry_split": feed_entry_split,
}
)
).flatten().drop_empty(),
"cursor": {
"last_entry_id": (
has(body.entries) ?
(
(body.entries.size() > 0) ?
string(int(body.entries.map(e, e.id).max()))
:
state.cursor.last_entry_id
)
:
""
),
"size": body.entries.size(),
},
"want_more": has(body.entries) && body.entries.size() > 0,
"batch_size": state.batch_size,
"api_key": state.api_key,
"url": state.url,
}
)
)
)
tags:
{{#if preserve_original_event}}
- preserve_original_event
{{/if}}
{{#each tags as |tag|}}
- {{tag}}
{{/each}}
{{#contains "forwarded" tags}}
publisher_pipeline.disable_host: true
{{/contains}}
{{#if processors}}
processors:
{{processors}}
{{/if}}