v1.0.0-beta.226

ruixenui/ruixen.comv1.0.0-beta.226Jan 16, 2026by github-actions[bot]

AI Summary

A major beta release focusing on entitlement management, multi-subject support, and streaming usage, accompanied by extensive bug fixes and a breaking change.

Key Highlights

  • Exposed `TotalAvailableGrantedAmount` in entitlements.
  • Added multi-subject support for entitlement subjects.
  • Added annotations and metadata to meters.
  • Breaking change: Static entitlement config type changed to string.

Breaking Changes

  • Static entitlement config type changed to string

New Features

  • Multi-subject entitlements
  • Streaming usage lookup by customer key and subjects
  • Annotations and metadata on meters
  • ClickHouse retries
  • Persist sync state

Full Release Notes

<!-- Release notes generated using configuration in .github/release.yml at v1.0.0-beta.226 -->

## What's Changed
### Exciting New Features 🎉
* feat(entitlement): expose TotalAvailableGrantedAmount by @GAlexIHU in https://github.com/openmeterio/openmeter/pull/3556
* chore: remove redis based highwatermark cache by @turip in https://github.com/openmeterio/openmeter/pull/3605
* feat(multi-subject): entitlement subjects by @GAlexIHU in https://github.com/openmeterio/openmeter/pull/3576
* feat: allow setting key prefix for progress manager by @turip in https://github.com/openmeterio/openmeter/pull/3615
* feat(streaming): lookup usage by customer key and subjects by @hekike in https://github.com/openmeterio/openmeter/pull/3178
* feat: add annotations and metadata to meter by @chrisgacsal in https://github.com/openmeterio/openmeter/pull/3626
* feat: add clickhouse retries by @turip in https://github.com/openmeterio/openmeter/pull/3691
* feat: persist sync state by @turip in https://github.com/openmeterio/openmeter/pull/3711
### Bug Fixes 🐛
* fix(sdk): javascript client customer stripe method by @tothandras in https://github.com/openmeterio/openmeter/pull/3597
* fix: event reconcile by @chrisgacsal in https://github.com/openmeterio/openmeter/pull/3598
* chore: fix no migrations to run error by @turip in https://github.com/openmeterio/openmeter/pull/3599
* fix: notification channel state out-of-sync by @chrisgacsal in https://github.com/openmeterio/openmeter/pull/3600
* fix: delivery status sync by @chrisgacsal in https://github.com/openmeterio/openmeter/pull/3604
* fix: issueAfterReset and Grants used together error by @chrisgacsal in https://github.com/openmeterio/openmeter/pull/3609
* fix: validation of max rules per channel by @chrisgacsal in https://github.com/openmeterio/openmeter/pull/3625
* fix(subs): use correct timing validation by @GAlexIHU in https://github.com/openmeterio/openmeter/pull/3637
* fix: fix draftuntil logging by @GAlexIHU in https://github.com/openmeterio/openmeter/pull/3638
* fix: allow entitlement and subscription creation if customer has no subjects assigned by @GAlexIHU in https://github.com/openmeterio/openmeter/pull/3642
* fix: streaming customer validations by @GAlexIHU in https://github.com/openmeterio/openmeter/pull/3643
* fix: validate params in param validation by @GAlexIHU in https://github.com/openmeterio/openmeter/pull/3644
* fix(planaddon): max quantity of plan add-on by @chrisgacsal in https://github.com/openmeterio/openmeter/pull/3655
* fix: use correct defaults by @GAlexIHU in https://github.com/openmeterio/openmeter/pull/3660
* fix: validate features before publishing plans/add-ons by @chrisgacsal in https://github.com/openmeterio/openmeter/pull/3661
* fix: static entitlement deserialization by @GAlexIHU in https://github.com/openmeterio/openmeter/pull/3701
* fix(pc): resolve only active features by @chrisgacsal in https://github.com/openmeterio/openmeter/pull/3716
* fix(api): static entitlement mapping by @chrisgacsal in https://github.com/openmeterio/openmeter/pull/3726
* fix(stripe): client array allocation by @hekike in https://github.com/openmeterio/openmeter/pull/3732
* fix(billing): support customers without subjects by @hekike in https://github.com/openmeterio/openmeter/pull/3734
* fix(stripe): invoice sync line limit by @hekike in https://github.com/openmeterio/openmeter/pull/3737
* fix(invoice): customer usage attribution by @hekike in https://github.com/openmeterio/openmeter/pull/3739
* fix: entitlement config compare by @chrisgacsal in https://github.com/openmeterio/openmeter/pull/3741
* fix(meterexport): allow groubpys by @GAlexIHU in https://github.com/openmeterio/openmeter/pull/3689
* fix: filtering grants by customers by @chrisgacsal in https://github.com/openmeterio/openmeter/pull/3746
* fix(entitlements): total active grant calculation by @tothandras in https://github.com/openmeterio/openmeter/pull/3745
* fix: list entitlement by event subject by @chrisgacsal in https://github.com/openmeterio/openmeter/pull/3748
* fix: list grants by customer subjects by @chrisgacsal in https://github.com/openmeterio/openmeter/pull/3749
* fix: error handling in reconcile loop by @chrisgacsal in https://github.com/openmeterio/openmeter/pull/3753
* fix: resolving svix endpoints by msg attempts by @chrisgacsal in https://github.com/openmeterio/openmeter/pull/3754
* fix: entitlement query for customer meters by @chrisgacsal in https://github.com/openmeterio/openmeter/pull/3758
### Breaking Changes 🛠
* refactor!: static entitlement config type to string by @chrisgacsal in https://github.com/openmeterio/openmeter/pull/3736
### Dependency Updates ⬆️
* chore(deps): bump the k8s group across 1 directory with 3 updates by @dependabot[bot] in https://github.com/openmeterio/openmeter/pull/3612
* chore(deps): bump the golang group with 2 updates by @dependabot[bot] in https://github.com/openmeterio/openmeter/pull/3610
* chore(deps): bump github.com/prometheus/common from 0.67.2 to 0.67.3 in the prometheus group by @dependabot[bot] in https://github.com/openmeterio/openmeter/pull/3621
* chore(deps): bump golang.org/x/crypto from 0.44.0 to 0.45.0 by @dependabot[bot] in https://github.com/openmeterio/openmeter/pull/3622
* chore(deps): bump github.com/samber/slog-multi from 1.5.0 to 1.6.0 in the samber group by @dependabot[bot] in https://github.com/openmeterio/openmeter/pull/3624
* chore(deps-dev): bump black from 25.9.0 to 25.11.0 in /api/client/python in the development-dependencies group by @dependabot[bot] in https://github.com/openmeterio/openmeter/pull/3611
* chore(deps): bump google.golang.org/grpc from 1.76.0 to 1.77.0 in the googlecloud group by @dependabot[bot] in https://github.com/openmeterio/openmeter/pull/3629
* chore(deps): bump the redis group with 2 updates by @dependabot[bot] in https://github.com/openmeterio/openmeter/pull/3630
* chore(deps): bump github.com/invopop/gobl from 0.302.1 to 0.303.0 by @dependabot[bot] in https://github.com/openmeterio/openmeter/pull/3632
* chore(deps): bump github.com/prometheus/common from 0.67.3 to 0.67.4 in the prometheus group by @dependabot[bot] in https://github.com/openmeterio/openmeter/pull/3639
* chore(deps): bump github.com/rickb777/period from 1.0.19 to 1.0.21 by @dependabot[bot] in https://github.com/openmeterio/openmeter/pull/3631
* chore(deps): bump github.com/go-resty/resty/v2 from 2.16.5 to 2.17.0 by @dependabot[bot] in https://github.com/openmeterio/openmeter/pull/3641
* chore(deps): bump github.com/golang-migrate/migrate/v4 from 4.19.0 to 4.19.1 by @dependabot[bot] in https://github.com/openmeterio/openmeter/pull/3662
* chore(deps): bump github.com/eclipse/paho.mqtt.golang from 1.5.0 to 1.5.1 by @dependabot[bot] in https://github.com/openmeterio/openmeter/pull/3659
* chore(deps): bump github.com/go-co-op/gocron/v2 from 2.18.0 to 2.18.2 by @dependabot[bot] in https://github.com/openmeterio/openmeter/pull/3657
* chore(deps): bump the redis group with 2 updates by @dependabot[bot] in https://github.com/openmeterio/openmeter/pull/3656
* chore(deps): bump github.com/xdg-go/scram from 1.1.2 to 1.2.0 by @dependabot[bot] in https://github.com/openmeterio/openmeter/pull/3658
* chore(deps): bump github.com/spf13/cobra from 1.10.1 to 1.10.2 by @dependabot[bot] in https://github.com/openmeterio/openmeter/pull/3673
* chore(deps): bump the redis group with 2 updates by @dependabot[bot] in https://github.com/openmeterio/openmeter/pull/3671
* chore(deps): bump the golang group across 1 directory with 3 updates by @dependabot[bot] in https://github.com/openmeterio/openmeter/pull/3705
* chore(deps): bump the k8s group across 1 directory with 3 updates by @dependabot[bot] in https://github.com/openmeterio/openmeter/pull/3710
* chore(deps): bump the otel group with 15 updates by @dependabot[bot] in https://github.com/openmeterio/openmeter/pull/3706
* chore(deps): bump github.com/invopop/gobl from 0.303.0 to 0.304.1 by @dependabot[bot] in https://github.com/openmeterio/openmeter/pull/3714
* chore(deps): bump github.com/go-co-op/gocron/v2 from 2.18.2 to 2.19.0 by @dependabot[bot] in https://github.com/openmeterio/openmeter/pull/3715
* chore(deps): bump github.com/svix/svix-webhooks from 1.81.0 to 1.82.0 by @dependabot[bot] in https://github.com/openmeterio/openmeter/pull/3672
* chore(deps): bump github.com/ClickHouse/ch-go from 0.68.0 to 0.69.0 by @dependabot[bot] in https://github.com/openmeterio/openmeter/pull/3713
* chore(deps): bump urllib3 from 2.5.0 to 2.6.0 in /api/client/python by @dependabot[bot] in https://github.com/openmeterio/openmeter/pull/3665
* chore(deps): bump urllib3 from 2.5.0 to 2.6.0 in /api/client/python/examples by @dependabot[bot] in https://github.com/openmeterio/openmeter/pull/3666
* chore(deps): bump github.com/invopop/gobl to v0.304.2 by @chrisgacsal in https://github.com/openmeterio/openmeter/pull/3717
* chore(deps): bump github.com/go-resty/resty/v2 from 2.17.0 to 2.17.1 by @dependabot[bot] in https://github.com/openmeterio/openmeter/pull/3725
* chore(deps): bump github.com/ClickHouse/clickhouse-go/v2 from 2.40.3 to 2.42.0 by @dependabot[bot] in https://github.com/openmeterio/openmeter/pull/3724
* chore(deps): bump urllib3 from 2.6.0 to 2.6.2 in /api/client/python in the production-dependencies group by @dependabot[bot] in https://github.com/openmeterio/openmeter/pull/3723
* chore(deps): bump google.golang.org/protobuf from 1.36.10 to 1.36.11 in the googlecloud group by @dependabot[bot] in https://github.com/openmeterio/openmeter/pull/3719
* chore(deps): bump github.com/svix/svix-webhooks from 1.82.0 to 1.83.0 by @dependabot[bot] in https://github.com/openmeterio/openmeter/pull/3727
* chore(deps): bump github.com/XSAM/otelsql from 0.40.0 to 0.41.0 by @dependabot[bot] in https://github.com/openmeterio/openmeter/pull/3728
* chore(deps): bump github.com/jackc/pgx/v5 from 5.7.6 to 5.8.0 by @dependabot[bot] in https://github.com/openmeterio/openmeter/pull/3744
* chore(deps): bump github.com/samber/slog-multi from 1.6.0 to 1.7.0 in the samber group by @dependabot[bot] in https://github.com/openmeterio/openmeter/pull/3776
* chore(deps): bump aiohttp from 3.13.1 to 3.13.3 in /api/client/python/examples by @dependabot[bot] in https://github.com/openmeterio/openmeter/pull/3751
* chore(deps): bump aiohttp from 3.13.1 to 3.13.3 in /api/client/python by @dependabot[bot] in https://github.com/openmeterio/openmeter/pull/3752
* chore(deps): bump github.com/confluentinc/confluent-kafka-go/v2 from 2.12.0 to 2.13.0 by @dependabot[bot] in https://github.com/openmeterio/openmeter/pull/3769
* chore(deps): bump urllib3 from 2.6.2 to 2.6.3 in /api/client/python by @dependabot[bot] in https://github.com/openmeterio/openmeter/pull/3763
* chore(deps): bump urllib3 from 2.6.0 to 2.6.3 in /api/client/python/examples by @dependabot[bot] in https://github.com/openmeterio/openmeter/pull/3762
* chore(deps): bump google.golang.org/grpc from 1.77.0 to 1.78.0 in the googlecloud group by @dependabot[bot] in https://github.com/openmeterio/openmeter/pull/3735
* chore(deps): bump github.com/huandu/go-sqlbuilder from 1.38.1 to 1.38.2 by @dependabot[bot] in https://github.com/openmeterio/openmeter/pull/3756
* chore(deps): bump github.com/svix/svix-webhooks from 1.83.0 to 1.84.1 by @dependabot[bot] in https://github.com/openmeterio/openmeter/pull/3757
* chore(deps): bump github.com/prometheus/common from 0.67.4 to 0.67.5 in the prometheus group by @dependabot[bot] in https://github.com/openmeterio/openmeter/pull/3768
* chore(deps): bump the k8s group across 1 directory with 3 updates by @dependabot[bot] in https://github.com/openmeterio/openmeter/pull/3729
### Other Changes
* refactor: improve event reconcile by @chrisgacsal in https://github.com/openmeterio/openmeter/pull/3602
* refactor: balance worker partition affinity by @turip in https://github.com/openmeterio/openmeter/pull/3603
* chore: use derive for eq checks by @turip in https://github.com/openmeterio/openmeter/pull/3521
* fix: reconcile state after msg resend by @chrisgacsal in https://github.com/openmeterio/openmeter/pull/3613
* chore(api): update JS client dependencies by @tothandras in https://github.com/openmeterio/openmeter/pull/3620
* fix: add validations on grant input by @GAlexIHU in https://github.com/openmeterio/openmeter/pull/3433
* feat(api): add missing methods to JS SDK by @tothandras in https://github.com/openmeterio/openmeter/pull/3640
* refactor: sink-worker lifecycle by @chrisgacsal in https://github.com/openmeterio/openmeter/pull/3647
* feat(billing): store payment processing entered at ts on invoice by @GAlexIHU in https://github.com/openmeterio/openmeter/pull/3645
* refactor: validate database inside the actual handler logic by @turip in https://github.com/openmeterio/openmeter/pull/3664
* refactor: standardize ingest http handler [OM-87] by @turip in https://github.com/openmeterio/openmeter/pull/3675
* refactor(customer): make usageattribution optional by @GAlexIHU in https://github.com/openmeterio/openmeter/pull/3682
* feat(api): customer v3 API by @tothandras in https://github.com/openmeterio/openmeter/pull/3690
* feat(api): v3 meter by @tothandras in https://github.com/openmeterio/openmeter/pull/3692
* feat: allow triggering subscription sync via events by @turip in https://github.com/openmeterio/openmeter/pull/3695
* feat(api): v3 list entitlement access by @tothandras in https://github.com/openmeterio/openmeter/pull/3693
* feat(api): add filter by key support to list-customers operation by @gergely-kurucz-konghq in https://github.com/openmeterio/openmeter/pull/3694
* feat(api): v3 subscription api by @tothandras in https://github.com/openmeterio/openmeter/pull/3696
* chore: retry queries on scaling by @turip in https://github.com/openmeterio/openmeter/pull/3702
* feat(api): error mapping by @tothandras in https://github.com/openmeterio/openmeter/pull/3708
* chore(client): update javascript dependencies by @tothandras in https://github.com/openmeterio/openmeter/pull/3747
* feat: detailed line schema by @turip in https://github.com/openmeterio/openmeter/pull/3770
* feat: enforce gathering invoice uniqueness by @turip in https://github.com/openmeterio/openmeter/pull/3772
* chore(docs): update api docs by @GAlexIHU in https://github.com/openmeterio/openmeter/pull/3774


**Full Changelog**: https://github.com/openmeterio/openmeter/compare/v1.0.0-beta.225...v1.0.0-beta.226