Reference

operations.config queries

Package Trax.Api.GraphQLSurface GraphQL schemaSource ConfigQueries.cs

ConfigQueries, the type behind operations { config { ... } }.

The operations.config namespace returns the live scheduler runtime settings (the dashboard-editable subset of SchedulerConfiguration, LocalWorkerOptions, and MetadataCleanupConfiguration). The dashboard's Server Settings page and this query both read from the same in-memory singleton, so they agree. The page saves through the same operations call as updateScheduler, sending only the fields the operator changed, and reloads from this snapshot afterwards.

Persistence: settings written via operations.config.updateScheduler (or the dashboard) are stored in the singleton-row trax.scheduler_config table, only the ones a save names. Every running scheduler applies them to its in-memory singleton at startup and re-reads the row every few seconds, so they survive restarts and reach every scheduler host. A setting never saved keeps each host's configured value. See config for which fields a save stores.

scheduler

query {
  operations {
    config {
      scheduler {
        manifestManagerEnabled
        jobDispatcherEnabled
        manifestManagerPollingInterval
        jobDispatcherPollingInterval
        maxActiveJobs
        defaultMaxRetries
        failureCountWindow
        defaultRetryDelay
        retryBackoffMultiplier
        maxRetryDelay
        defaultJobTimeout
        stalePendingTimeout
        recoverStuckJobsOnStartup
        deadLetterRetentionPeriod
        autoPurgeDeadLetters
        localWorkerCount
        metadataCleanupInterval
        metadataCleanupRetention
      }
    }
  }
}

Returns: SchedulerConfigSnapshot.

environmentName, version and logLevels

The API host's environment, the Trax version it runs, and the level each configured log category filters at, which the dashboard shows as its environment badge, its footer and on its server settings page.

query {
  operations {
    config {
      environmentName
      version
      logLevels { category level configuredLevel overridden }
    }
  }
}

environmentName is IHostEnvironment.EnvironmentName (String!).

version (String!) is the version of Trax serving the API, such as 1.46.0: the Trax.Api.GraphQL package's version without its build metadata, and what the operations console's footer shows. It says which Trax release the host runs, not the host application's own version, which Trax does not know.

logLevels is [LogLevelSetting!]!, one per category configured under Logging:LogLevel (and per category changed at runtime since), Default first and the rest by category; empty when the host configures none. It reads through ILogLevelService in Trax.Scheduler, the service the dashboard's server settings call, so it includes a change made with setLogLevels or from the dashboard. Only that section is read, so no other configuration value (a connection string, a secret) is reachable from here. All three describe the API process, not the scheduler or worker processes.

LogLevelSetting fields

FieldTypeDescription
categoryString!The logging category, Default for the level every other category falls back to
levelString!The level its loggers filter at now, by LogLevel name (Trace ... None): a level set at runtime when there is one, otherwise the configured one, Information when the configured value is not a level
configuredLevelStringThe value configured under Logging:LogLevel, as written; null when the category is not configured there
overriddenBoolean!Whether a level was set at runtime, so level is not the configured one. It lasts until the process restarts

A host that does not call AddScheduler registers no ILogLevelService: there logLevels reads the configured section as written, with overridden always false, and setLogLevels refuses.

SchedulerConfigSnapshot fields

FieldTypeDescription
manifestManagerEnabledBoolean!Whether the manifest manager polling service runs
jobDispatcherEnabledBoolean!Whether the job dispatcher polling service runs
manifestManagerPollingIntervalTimeSpan!How often the manifest manager polls
jobDispatcherPollingIntervalTimeSpan!How often the job dispatcher polls
maxActiveJobsIntGlobal concurrency cap. Null means no cap
defaultMaxRetriesInt!Default retry budget for new manifests
failureCountWindowTimeSpan!How far back failed runs count toward retry backoff and MaxRetries
defaultRetryDelayTimeSpan!First-retry delay
retryBackoffMultiplierFloat!Exponential backoff factor
maxRetryDelayTimeSpan!Upper bound on backoff
defaultJobTimeoutTimeSpan!Default per-execution timeout
stalePendingTimeoutTimeSpan!When pending entries are reaped
recoverStuckJobsOnStartupBoolean!Whether stuck-job recovery runs on startup
deadLetterRetentionPeriodTimeSpan!How long resolved dead letters are kept before purging
autoPurgeDeadLettersBoolean!Whether the dead letter cleanup service runs
localWorkerCountIntIn-process worker thread count. Null when the scheduler runs no local worker pool (no database provider, or a replaced job submitter). Local workers are on by default with a database provider; ConfigureLocalWorkers tunes them
metadataCleanupIntervalTimeSpanMetadata cleanup poll interval. Null when cleanup is not configured
metadataCleanupRetentionTimeSpanHow long completed metadata is kept. Null when cleanup is not configured

See also