Skip to content

Releases: DevinMB/data-sinks

Update sink keying

Choose a tag to compare

@DevinMB DevinMB released this 25 Apr 17:48
Replace _DocFormatter with str.format for custom ID template rendering

_DocFormatter was silently producing empty entity_id renders in the
Alpine Python environment, causing every message to fall through to
auto-id. Plain str.format(**builtins) is simpler and guaranteed correct
for flat top-level field tokens.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

.

.

Choose a tag to compare

@DevinMB DevinMB released this 25 Apr 17:17
v1.3.3

.

merge commits

Choose a tag to compare

@DevinMB DevinMB released this 25 Apr 17:03
Refactor couchdb-sink: add nested ID template support and helpers

- Add _DocFormatter for {doc.x.y.z} nested field traversal in custom ID templates
- Add get_nested() for dotted-path resolution against dicts
- Add sanitize_id_segment() to strip '/' from CouchDB _ids
- Extend compute_doc_id custom mode with last_updated, last_changed, entity_id tokens
- Update field mode to support dotted paths (e.g. "context.id")

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

fix

fix

Choose a tag to compare

@DevinMB DevinMB released this 25 Apr 16:47

The current custom template only supports {chat_id}, {int_ts}, {ts}, and {key}, all of which assume a Telegram-shaped message. For Home Assistant apache_kafka messages (and likely other sources), there's no top-level timestamp field — the time lives in last_updated / last_changed, and unique IDs live nested at context.id.
This change:

Adds {last_updated}, {last_changed}, and {entity_id} as first-class tokens.
Adds dotted-path resolution to field mode so COUCHDB_ID_FIELD=context.id works.
Adds a generic {doc.path.to.field} escape hatch in custom templates so users can reference any nested field without further code changes.
Sanitizes characters in template values that would break CouchDB _ids (specifically /).

Fully backward-compatible — existing templates and modes behave identically.

better keying

Choose a tag to compare

@DevinMB DevinMB released this 25 Apr 16:31
d89e56c

The current custom template only supports {chat_id}, {int_ts}, {ts}, and {key}, all of which assume a Telegram-shaped message. For Home Assistant apache_kafka messages (and likely other sources), there's no top-level timestamp field — the time lives in last_updated / last_changed, and unique IDs live nested at context.id.
This change:

Adds {last_updated}, {last_changed}, and {entity_id} as first-class tokens.
Adds dotted-path resolution to field mode so COUCHDB_ID_FIELD=context.id works.
Adds a generic {doc.path.to.field} escape hatch in custom templates so users can reference any nested field without further code changes.
Sanitizes characters in template values that would break CouchDB _ids (specifically /).

Fully backward-compatible — existing templates and modes behave identically.

v1.2.1

Choose a tag to compare

@DevinMB DevinMB released this 25 Oct 15:30
key

v1.2.0

Choose a tag to compare

@DevinMB DevinMB released this 25 Oct 15:23
key

Filter Functionality

Choose a tag to compare

@DevinMB DevinMB released this 12 Oct 23:40

Added Regex Key Filtering

Minor fix

Choose a tag to compare

@DevinMB DevinMB released this 14 Sep 19:29
v1.0.4

filter logic and auto commit setting

Filters and Commit settings

Choose a tag to compare

@DevinMB DevinMB released this 14 Sep 19:14
v1.0.3

filter logic and auto commit setting