Skip to content

Release v21.0.2

Choose a tag to compare

@github-actions github-actions released this 07 Aug 05:38
9c8c8ca

Summary

Every observable-query transport (WebSocket, SSE, and the multiplexed hub) resolved the read-model interceptor from the root IServiceProvider. Chronicle's client services are registered scoped, resolving the current tenant's namespace once per scope and caching it — so resolving them from root cached whichever tenant subscribed first and reused that namespace for every subscription thereafter. In a multi-tenant app this meant [PII] properties on observable-query results came back empty for every tenant but the first.

Security

  • Fix observable queries decrypting/releasing compliance and PII data under the wrong tenant's Chronicle namespace, which caused [PII] properties to come back empty for every subscriber but whichever tenant's subscription resolved the namespace first (#2463)