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.