Skip to content

Configuration

The Extractor and Interpreter add cratis-prologue.json through the shared Cratis.Prologue.Configuration package. The Extractor binds capture settings under prologue and YARP’s reverseProxy section. Batch interpretation binds llm; service interpretation also binds prologue.mongo. The Receiver uses standard ASP.NET configuration, including appsettings.json and environment variables, and binds prologue.mongo.

  • The Extractor and Interpreter look for cratis-prologue.json in their working directory. Override the path with PROLOGUE_CONFIG, or pass another base path when calling AddPrologueConfiguration() in a custom host.
  • The file is the baseline; environment variables override it. Properties have double-underscore environment equivalents such as Prologue__Output__Kind, Prologue__SqlServer__0__ConnectionString, and ReverseProxy__Clusters__monitored__Destinations__primary__Address.
  • The Receiver follows standard ASP.NET precedence instead. Configure MongoDB in its appsettings.json or with Prologue__Mongo__ConnectionString, Prologue__Mongo__Database, and Prologue__Mongo__Collection.
  • A missing cratis-prologue.json is allowed; type defaults and environment variables still apply.
PropertyTypePurpose
prologuePrologueOptions and storage optionsCapture sources, correlation, output, and MongoDB storage for the applicable host
llmLlmOptionsOptional language-model refinement bound by the Interpreter
reverseProxyYARP configurationRoutes and clusters for the HTTP capture source — see YARP’s configuration docs
PropertyTypeDefaultPurpose
prologueIdguidempty guidAssociates captures with one interpretation session when explicitly configured
outputOutputOptionsWhere captures are written
correlationCorrelationOptionsThe correlation time window
sqlServerarray of SqlServerOptions[]SQL Server databases to watch via CDC
postgresarray of PostgresOptions[]PostgreSQL databases to watch via logical replication
openTelemetryOpenTelemetryOptionsOTLP proxy configuration
mongoMongoOptionsCapture and service-session storage used by the Receiver and service Interpreter
PropertyTypeDefaultPurpose
kind"Api" | "Json""Api"Whether captures are posted to a Receiver or written to JSON files
api.endpointstring"http://localhost:5005"Receiver base address, used when kind is "Api"
json.directorystring"./captures"Folder to write rolling .jsonl capture files to, used when kind is "Json"
json.maxEntriesPerFileint10000Entries per file before the Extractor rolls to a new one
PropertyTypeDefaultPurpose
windowMillisecondsint2000How long after a command the correlator keeps grouping database transactions and telemetry into the same capture — see How Prologue works
PropertyTypeDefaultPurpose
namestring"sqlserver"Label for this database in captures
connectionStringstringConnection string; needs permission to enable CDC
enableChangeDataCapturebooltrueWhether the Extractor enables CDC on the database itself
tablesarray of string[]Table allowlist; empty captures every user table
pollIntervalMillisecondsint500How often the Extractor polls for new CDC changes
PropertyTypeDefaultPurpose
namestring"postgres"Label for this database in captures
connectionStringstringConnection string; needs permission to create a replication slot and publication, and wal_level = logical on the server
slotstring"prologue_slot"Replication slot name
publicationstring"prologue_publication"Publication name
PropertyTypeDefaultPurpose
enabledboolfalseWhether the OTLP proxy is active
serviceNamesarray of string[]Service name allowlist; empty captures telemetry from every service
attributeKeysarray of string[]Attribute keys whose values are captured; all observed keys remain visible while other values are dropped
upstream.httpstringUpstream OTLP/HTTP collector to forward telemetry to
upstream.grpcstringUpstream OTLP/gRPC collector to forward telemetry to

Leave both upstream addresses empty to make the Extractor a terminal collector rather than a forwarding proxy.

The Receiver and service-mode Interpreter bind these settings through Cratis.Prologue.Storage. The service also stores interpretation checkpoints in the configured database.

PropertyTypeDefaultPurpose
connectionStringstring"mongodb://localhost:27017"MongoDB connection used for captures and service checkpoints
databasestring"Prologue"Database containing Prologue collections
collectionstring"captures"Capture collection used by the Receiver and Interpreter
PropertyTypeDefaultPurpose
enabledboolfalseWhether the Interpreter refines the heuristic model with a language model
kind"Ollama" | "OpenAI" | "AzureOpenAI" | "OpenAICompatible" | "Anthropic""Ollama"Which provider to call
endpointstring"http://llm:11434"Provider endpoint; the hosted providers (OpenAI, Azure OpenAI, Anthropic) default to their public endpoint if you don’t set one
accessTokenstringAPI key for the hosted providers; not needed for a local Ollama endpoint
modelIdstringan Ollama model tagThe model to call — for AzureOpenAI, this is the deployment name, not a model name
refinementTimeoutduration2 minutesHow long the Interpreter waits for a refinement response before giving up and keeping the heuristic result

See Running the Interpreter for a worked example.