Namespace Cratis.Arc.Queries

Classes

BodyQueryRequestReader

Represents an IQueryRequestReader that reads a query request from the JSON body of an HTTP QUERY request (RFC 10008).

ChangeSet

Represents a set of changes describing which items were added, replaced, or removed in an observable query result since the previous update.

ChangeSetComputor

Computes ChangeSet deltas between consecutive snapshots of observable collection queries.

ClientEnumerableObservableSSE<T>

Represents an implementation of IClientEnumerableObservable that uses Server-Sent Events (SSE) for streaming.

ClientEnumerableObservable<T>

Represents an implementation of IClientEnumerableObservable.

ClientObservableBase<T>

Abstract base class for IClientObservable implementations, providing common async enumeration and connection dispatch via the template method HandleConnectionCore(IHttpRequestContext).

ClientObservableSSE<T>

Represents an implementation of IClientObservable that uses Server-Sent Events (SSE) for streaming.

ClientObservable<T>

Represents an implementation of IClientObservable.

CollectionChange

Represents one item-level change an observable collection query already knows it made.

ControllerObservableQueryAdapter

Represents an ASP.NET Core controller-specific adapter for handling observable query results.

FullyQualifiedQueryName

Concept representing a fully qualified name of a query.

InvalidCollectionQueryArgument

The exception that is thrown when a collection query argument contains an invalid element or has a nested collection shape.

InvalidQueryArgument

The exception that is thrown when a supplied scalar query argument cannot be converted to its declared type.

InvalidSubscriptionScope

The exception that is thrown when a filter-supplied subscription scope cannot be serialized and restored.

JsonLinesStreamingFormatter

Represents a formatter for streaming JSON lines.

KeepAliveTracker

Tracks the last time a message was sent to determine whether a keep-alive message should be sent.

MultipleQueryPerformersForSameReadModel

Exception that gets thrown when multiple query performers are found for the same query.

ObservableAsyncEnumerator<T>

Represents an IAsyncEnumerator<T> for a client observables.

ObservableQueryDemultiplexer

Represents an implementation of IObservableQueryDemultiplexer providing composite observable query streaming over a fixed WebSocket endpoint (/.cratis/queries/ws) and a fixed Server-Sent Events endpoint (/.cratis/queries/sse).

ObservableQueryDemultiplexerEndpointMapper

Maps the fixed IObservableQueryDemultiplexer endpoints onto the provided IEndpointMapper.

ObservableQueryEmissionContext

Represents the context handed to an IGuardObservableQueryEmission for a single emission on an observable query subscription.

ObservableQueryEmissionGuards

Represents an implementation of IObservableQueryEmissionGuards.

ObservableQueryExtensions

Provides extension methods for working with observable queries.

ObservableQueryHandler

Represents a generic implementation of IObservableQueryHandler that doesn't depend on specific HTTP frameworks.

ObservableQueryHttp

Provides shared HTTP handling for observable queries.

ObservableQueryHubMessage

Represents a protocol message exchanged over the ObservableQueryDemultiplexer WebSocket or SSE connection.

ObservableQuerySSESubscribeRequest

Represents the POST body for subscribing to a query over the SSE hub transport. The ConnectionId correlates this request with an established SSE stream.

ObservableQuerySSEUnsubscribeRequest

Represents the POST body for unsubscribing from a query over the SSE hub transport.

ObservableQuerySubscriptionRequest

Represents the payload of an Subscribe message sent by the client.

ObservableQuerySubscriptionRevision

Defines the wire-level bounds for observable query subscription revisions.

ObservedCollection<TDocument>

A snapshot emitted by an observable collection query that carries the changes it represents.

OpenGenericReadModelInterceptorMustInterceptItsTypeParameter

The exception that is thrown when a discovered open generic read model interceptor does not implement IInterceptReadModel<TReadModel> over its own single type parameter.

PageNumber

Concept representing the page number (zero-based) for paging.

PageNumberValidator

Represents a validator for PageNumber.

PageSize

Concept representing the number of items per page for paging.

PageSizeValidator

Represents a validator for PageSize.

Paging

Represents paging for a query.

PagingInfo

Represents the result coming from performing a query with a collection of items.

QueryActionFilter

Represents a IAsyncActionFilter for providing a proper QueryResult for post actions.

QueryArguments

Represents arguments for a query, providing a strongly-typed wrapper around dictionary functionality.

QueryArgumentsModels

Represents an implementation of IQueryArgumentsModels that resolves the arguments model by convention.

QueryConnectionHealth

Represents health information for a query connection.

QueryContext

Defines the context for a query.

QueryContextManager

Represents an implementation of QueryContext.

QueryEndpointMapper

Maps query endpoints using the provided endpoint mapper.

QueryFilters

Represents an instance of IQueryFilters.

QueryHealth

Read model for query health monitoring.

QueryHealthAuthorization

Applies the configured query health access requirements at pipeline authorization boundaries.

QueryHealthOptions

Controls access to the query health diagnostic feed on direct endpoints and hub subscriptions.

QueryHealthTracker

Represents an implementation of IQueryHealthTracker.

QueryHttpExtensions

Provides common query processing functionality that can be used by both controller-based queries and pipeline-based queries.

QueryMethodExtensions

Extension methods for methods representing commands.

QueryName

Concept representing the name of a query.

QueryOptions

Represents the options for observable queries.

QueryParameter

Represents a query parameter with its name and type.

QueryParameters

Represents a collection of query parameters.

QueryPerformerProviders

Represents an implementation of IQueryPerformerProviders.

QueryPipeline

Represents a query pipeline.

QueryRendererResult

Represents the result of a query renderer.

QueryRenderers

Represents an implementation of IQueryRenderers.

QueryRequest

Represents a query request parsed from an incoming HTTP request, independent of the transport it arrived on.

QueryRequestEnvelope

Represents the JSON body of an HTTP QUERY request (RFC 10008) — the arguments, paging and sorting that a GET request would otherwise carry in the query string.

QueryRequestEnvelope.PagingRequest

Represents paging in a QueryRequestEnvelope.

QueryRequestEnvelope.SortingRequest

Represents sorting in a QueryRequestEnvelope.

QueryResult

Carries admission-only data back across the asynchronous query pipeline boundary without serializing it.

QueryStringQueryRequestReader

Represents an IQueryRequestReader that reads a query request from the URL query string of a GET request.

QuerySubscriber

Represents a single active subscriber for a query, combining connection and subscription data.

QuerySubscriptionAggregate

Represents a query-centric view of all active subscriptions for a single query.

QuerySubscriptionClientInfo

Represents client information for a query subscription.

QuerySubscriptionMetadata

Represents metadata for a single query subscription.

QueryValidator<T>

Represents the base type for a validator of query.

QueryableExtensions

Provides a set of methods for working with IQueryable.

QueryableQueryRenderer

Represents a IQueryRendererFor<TQueryType> for IQueryable and derivatives.

ReadModelDoesNotExistForCommand

Exception that gets thrown when a command requires a non-nullable read model that does not exist for the command's resolved key.

ReadModelInterceptors

Represents an implementation of IReadModelInterceptors.

ReadModelInterceptorsExtensions

Extension methods for IReadModelInterceptors covering observable query emissions.

ReadModelUnresolvableDependencyClassifier

Represents an IUnresolvableDependencyClassifier that recognizes a non-nullable read model dependency which does not exist for the command's resolved key as invalid client input rather than a server fault.

RegisteredReadModelTypes

Holds the set of read model types that were registered for command-scoped resolution, so consumers can tell a read model dependency apart from an unrelated one without re-resolving it.

SortDirectionIsNotRecognized

The exception that is thrown when a query request carries a sort direction that is not one of the recognized spellings.

SortField

Concept representing the name of a field to sort by.

Sorting

Represents sorting for a query.

UnableToResolveReadModelFromCommandContext

Exception that gets thrown when not being able to resolve a read model from command context.

WebSocketConnectionHandler

Represents an implementation of IWebSocketConnectionHandler.

WebSocketMessage

Represents a WebSocket message envelope.

Structs

ObservableQueryHttpOptions

Represents HTTP options for observable queries.

ObservableQueryHttpResponse

Represents the HTTP response for an observable query.

Interfaces

IAuthorizationQueryFilter

Defines an IQueryFilter that authorizes query execution and must run before other filters.

IAuthorizationQueryTarget

Exposes the method whose authorization declaration applies to a query performer.

ICanResolveReadModelForCommand

Defines a provider that can resolve read models by key for a command, so a read model backed by any store — Chronicle, Entity Framework Core, or another provider — can be injected into command-scoped code.

IClientEnumerableObservable

Defines an enumerable that is observed by a connected client.

IClientObservable

Defines an observable that is observed by a connected client.

IGuardObservableQueryEmission

Defines a guard that is consulted for every emission an observable query subscription is about to write.

IHaveKnownChanges

Defines a collection emitted by an observable query that already knows which of its items changed.

IInterceptReadModel<TReadModel>

Defines a contract for intercepting a read model before it is served to a client.

IObservableQueryDemultiplexer

Defines the observable query demultiplexer — a composite endpoint that accepts multiplexed observable query subscriptions over a single persistent connection and routes them to individual query pipelines.

IObservableQueryEmissionGuards

Defines the system that aggregates all discovered IGuardObservableQueryEmission implementations into a single verdict per observable query emission.

IObservableQueryHandler

Defines a handler for observable/streaming (WebSocket-based) query operations.

IQueryArgumentsModels

Defines a system that materializes the model representing a query's argument set as a whole.

IQueryContextManager

Defines a manager for QueryContext.

IQueryFilter

Represents a filter that can be applied to a query.

IQueryFilters

Represents a collection of IQueryFilter instances.

IQueryHealthTracker

Defines a service for tracking query subscription health.

IQueryPerformer

Defines a renderer that can render a query.

IQueryPerformerProvider

Defines a provider for query performers.

IQueryPerformerProviders

Defines a provider for query performers.

IQueryPipeline

Defines a system can execute queries.

IQueryRendererFor<TQueryType>

Defines a paging adorner for a query.

IQueryRenderers

Defines a system that can execute queries.

IQueryRequestReader

Defines a reader that turns an incoming HTTP request into a parsed QueryRequest for a specific HTTP method.

IReadModelInterceptors

Defines a system for running discovered IInterceptReadModel<TReadModel> instances against read model items.

IWebSocketConnectionHandler

Defines a system that knows how to handle the IWebSocket connection for observable queries.

Enums

CollectionChangeKind

Describes what happened to a single item of an observed collection.

ObservableQueryEmissionVerdict

Defines the verdict an IGuardObservableQueryEmission gives for a single observable query emission.

ObservableQueryHubMessageType

Defines the types of messages exchanged in the ObservableQueryDemultiplexer protocol.

QueryHttpMethod

Defines the HTTP method a generated client proxy uses to perform a query over HTTP.

ReadModelForCommandOwnership

Represents how strongly an ICanResolveReadModelForCommand claims the read model types it reports.

SortDirection

Defines the direction of sorting.

WebSocketMessageType

Represents the type of WebSocket message.