- DATE:
- AUTHOR:
- Ory Team
Ory Network, Ory Kratos, Ory Polis, Ory Elements v26.2.18 released
Ory Network
Pause and resume event streams
Event streams now have a status field that is either active or paused. A
paused stream stays fully configured, but Ory stops forwarding events to it
until you set it back to active.
In the Ory Console you can now pause or resume a stream from its menu, see each stream's status in the table, and create a stream as paused with a toggle.
Through the API, set the status field when creating or updating a stream. To
pause without resubmitting the destination, send only the status:
PUT /projects/{project_id}/eventstreams/{event_stream_id}
{ "status": "paused" }New event streams are
activeby default.Updating an event stream is now a partial update: every field is optional and omitted fields keep their current value.
Pausing skips the destination connectivity check, so you can pause (or create as paused) a stream whose destination is currently unreachable.
Project creation no longer rejects plan-gated settings in entitled workspaces
Creating a project in a workspace whose subscription includes a plan-gated
setting (such as cacheable sessions / Edge Cache, CAPTCHA, or SAML) now
succeeds. Previously, creation resolved entitlements against the free plan
because the project did not exist yet, so it returned
403 feature_not_available even when the target workspace's subscription
included the feature.
Plan checks during creation now resolve through the target workspace. Validation on the update path is unchanged.
Talos hardening: key redaction, audit-event tracing, rotation retention, and validation fixes
This release fixes four issues found during the Ory Talos pre-launch review:
Signing-key material no longer appears in logs or traces. Errors raised while fetching or parsing
base64://signing-key URLs now redact the embedded key payload and reference the key by its position in the configuration instead. This also hardens the shared configuration fetcher used across Ory services.Audit events are no longer dropped when tracing is enabled. Tracer initialization failed on startup due to an OpenTelemetry schema conflict, silently disabling all audit events. Initialization now succeeds, and any future tracer failure logs an error stating that audit events will be dropped.
Key rotation now applies the 30-day revocation retention window. Rotating an API key previously cleared the old key's expiry, leaving the revoked record without an expiration. Rotation now sets the same revocation expiry as direct revocation (the later of 30 days from now or the original expiry), and the rotation response reflects it.
Batch key import validates each item like single import. Batch items now enforce the same field limits as
ImportApiKey(key length, name and actor ID length, scope count and length, request ID length). Invalid items fail individually withINVALID_ARGUMENTwhile valid items in the same batch still succeed.Clearing scopes via
update_masknow works. Updating a key withupdate_mask: ["scopes"]and an empty scope list previously returned success but kept the old scopes. The update now clears them for both issued and imported keys.
This is now available on Ory Network and for the Ory Enterprise License.
Ory Kratos
Fix SCIM group membership data loss and conflict reporting
Fixes several SCIM provisioning defects affecting Microsoft Entra ID, Okta, and WorkOS clients.
Removing a member from a group no longer removes that user from their other groups; the delete is scoped to the changed group.
Groups now return their complete membership: no duplicated entries, and no silent truncation past 1000 combined members and subgroups (which previously dropped the missing members on the next update).
PATCHremovewithout apathnow returns400noTarget(RFC 7644) instead of erasing the entire user or group.Creating a user that already exists returns
409uniquenessinstead of500. Duplicate groupexternalIdand cross-organization conflicts also useuniqueness.Correct HTTP status on errors: an invalid
filteronUsers/Groupsreturns400invalidFilter(was404forGroups), and unexpected persistence errors return500(was404).An absent
activeattribute now defaults to active instead of creating a disabled user; explicitactive: falsestill deactivates.PATCHreplacewhose value-path filter matches nothing returns400noTargetinstead of silently creating a fabricated element.
This is now available on Ory Network and for the Ory Enterprise License.
Ory Polis
Configurable retention for SCIM webhook event logs
You can now set how long SCIM (directory sync) webhook event logs are kept,
using the DSYNC_WEBHOOK_LOGS_TTL environment variable. Set it to a duration
such as 720h or 30d.
If you leave the variable unset, logs keep the existing 7-day retention. Set it to an empty string to keep logs indefinitely. An unrecognized value falls back to the 7-day default and logs a warning, so a typo never disables retention.
This is now available for the Ory Enterprise License.
Ory Elements
Pre-fill the sign-in email from a login hint
Elements now pre-fills the email or identifier field on the login and
registration screens when a login_hint is provided. The hint is read from the
login_hint query parameter on the page URL, and on OAuth2 sign-in it falls
back to the OpenID Connect login_hint that the relying party sent.
The hint only sets the field's initial value. It never overwrites what a user has typed, and it is never used for routing or any sign-in decision.
This is now available on Ory Network, for the Ory Enterprise License, and will be part of the next Ory Open Source release.
Ory Hydra, Ory Keto, Ory Oathkeeper, and Ory Terraform
No significant changes in this release.