Table of Contents

Struct TenantFilter

Namespace
Millrace.Storage.Monitoring
Assembly
Millrace.dll

How a monitoring query treats the tenant dimension.

public readonly record struct TenantFilter : IEquatable<TenantFilter>
Implements
Inherited Members

Remarks

A plain string? cannot express this: null would have to mean both "every tenant" (an operator's cross-tenant view) and "the untenanted scope" (jobs enqueued with no ambient tenant). Those are different result sets in any deployment that mixes the two, and §11.8 already treats the null tenant as a scope in its own right for idempotency. Leaving the distinction to provider interpretation would guarantee divergence between providers.

Single-tenant applications never set a tenant, so for them Any and Untenanted select the same rows; they can use either.

Properties

Any

No tenant constraint — rows from every tenant, including untenanted rows.

IsConstrained

Whether the query constrains the tenant at all. When false, TenantId is meaningless.

TenantId

The tenant to match when IsConstrained is true; null then means the untenanted scope.

Untenanted

Only rows with no tenant (TenantId IS NULL).

Methods

For(string)

Only rows belonging to tenantId.