Skip to content

Release v2.2.1

Choose a tag to compare

@evoludigit evoludigit released this 27 Apr 05:25
· 594 commits to dev since this release

What's new

ChangelogConsumer Python SDK (#241)

Pull-based event loop for tb_entity_change_log. Register handlers with .on(entity_type, operation, handler), automatic Debezium envelope unwrapping, checkpoint persistence, exponential backoff, and configurable startup modes.

from fraiseql import ChangelogConsumer, ChangelogEvent

consumer = ChangelogConsumer(base_url="http://localhost:4000", consumer_id="my-worker")

@consumer.on("User", "INSERT")
async def on_user_created(event: ChangelogEvent):
    print(f"New user: {event.data}")

await consumer.run()

Server-side: GET /api/changelog, GET/PUT /api/changelog/checkpoint/:consumer_id

Claims enrichment for /auth/me (#242)

TOML-configured SQL query executed after JWT verification to augment the /auth/me response with application-specific fields. Named parameters ($sub, $email) bound via sqlx — never interpolated. Per-sub cache with configurable TTL. Optional column renaming.

[auth.me.enrichment]
query = "SELECT role, plan_tier FROM users WHERE auth_sub = $sub"
cache_ttl_secs = 300

[auth.me.enrichment.map]
role = "user_role"
plan_tier = "plan"

Observer delivery status HTTP API (#243)

GET /api/observers/delivery/status, per-observer breakdown, DLQ listing with pagination, single and bulk retry endpoints. Completes the at-least-once delivery feature set.

Fixed

  • Pre-existing clippy warnings in fraiseql-error and fraiseql-db

Full Changelog: v2.2.0...v2.2.1