Skip to content

Graphorin API reference v0.4.0


Graphorin API reference / @graphorin/server / / CreateServerOptions

Interface: CreateServerOptions

Defined in: packages/server/src/app.ts:311

Stable

Properties

PropertyModifierTypeDescriptionDefined in
agents?readonlyAgentRegistryOptional pre-built registries.packages/server/src/app.ts:325
audit?readonlyAuditApi-packages/server/src/app.ts:332
config?readonly{ audit?: { cipher?: string; enabled?: boolean; passphraseRef?: string; path?: string; }; auth?: { kind?: "token" | "none"; pepperRef?: string; perIpFailureThreshold?: number; perIpLockoutMs?: number; tokenEnvironments?: string[]; tokenPrefix?: string; }; hardening?: { applyOnStart?: boolean; refuseRoot?: boolean; umask?: number; }; health?: { walWarnThresholdBytes?: number; }; metrics?: { enabled?: boolean; path?: string; requireAuth?: boolean; }; observability?: { logger?: "json" | "pretty" | "silent"; }; secrets?: { source?: "auto" | "keyring" | "encrypted-file" | "env"; strict?: boolean; }; server?: { basePath?: string; cors?: { allowCredentials?: boolean; allowHeaders?: string[]; allowMethods?: string[]; allowOrigins?: string[]; maxAgeSeconds?: number; }; csrf?: { cookieName?: string; enabled?: boolean; headerName?: string; safeMethods?: string[]; }; host?: string; idempotency?: { checkBodyFingerprint?: boolean; enabled?: boolean; lruCacheSize?: number; requireKey?: "off" | "warn" | "enforce"; ttlSeconds?: number; }; port?: number; rateLimit?: { enabled?: boolean; perIpRequests?: number; windowMs?: number; }; shutdown?: { drainTimeoutMs?: number; }; sse?: { enabled?: boolean; keepAliveMs?: number; path?: string; }; stream?: { disconnectGracePeriodMs?: number; disconnectPolicy?: "continue" | "pause-on-disconnect" | "abort-on-disconnect"; perConnectionQueueLimit?: number; replayBuffer?: { maxEvents?: number; ttlSeconds?: number; }; }; trustProxy?: boolean; ws?: { commentarySanitization?: { applyToEvents?: string[]; policy?: "wrap" | "strip" | "pass-through"; }; enabled?: boolean; path?: string; ticketTtlMs?: number; }; }; storage?: { encryption?: { cipher?: string; enabled?: boolean; passphraseRef?: string; }; mode?: "lib" | "server"; path?: string; walCheckpointIntervalMs?: number; }; }Loaded graphorin.config.ts payload — see defineConfig({...}).packages/server/src/app.ts:313
config.audit?public{ cipher?: string; enabled?: boolean; passphraseRef?: string; path?: string; }-packages/server/src/config.ts:367
config.audit.cipher?publicstring-packages/server/src/config.ts:295
config.audit.enabled?publicboolean-packages/server/src/config.ts:292
config.audit.passphraseRef?publicstring-packages/server/src/config.ts:294
config.audit.path?publicstring-packages/server/src/config.ts:293
config.auth?public{ kind?: "token" | "none"; pepperRef?: string; perIpFailureThreshold?: number; perIpLockoutMs?: number; tokenEnvironments?: string[]; tokenPrefix?: string; }-packages/server/src/config.ts:369
config.auth.kind?public"token" | "none"-packages/server/src/config.ts:310
config.auth.pepperRef?publicstring-packages/server/src/config.ts:311
config.auth.perIpFailureThreshold?publicnumber-packages/server/src/config.ts:314
config.auth.perIpLockoutMs?publicnumber-packages/server/src/config.ts:315
config.auth.tokenEnvironments?publicstring[]-packages/server/src/config.ts:313
config.auth.tokenPrefix?publicstring-packages/server/src/config.ts:312
config.hardening?public{ applyOnStart?: boolean; refuseRoot?: boolean; umask?: number; }-packages/server/src/config.ts:371
config.hardening.applyOnStart?publicboolean-packages/server/src/config.ts:329
config.hardening.refuseRoot?publicboolean-packages/server/src/config.ts:330
config.hardening.umask?publicnumber-packages/server/src/config.ts:331
config.health?public{ walWarnThresholdBytes?: number; }-packages/server/src/config.ts:373
config.health.walWarnThresholdBytes?publicnumber-packages/server/src/config.ts:347
config.metrics?public{ enabled?: boolean; path?: string; requireAuth?: boolean; }-packages/server/src/config.ts:372
config.metrics.enabled?publicboolean-packages/server/src/config.ts:338
config.metrics.path?publicstring-packages/server/src/config.ts:339
config.metrics.requireAuth?publicboolean-packages/server/src/config.ts:340
config.observability?public{ logger?: "json" | "pretty" | "silent"; }-packages/server/src/config.ts:370
config.observability.logger?public"json" | "pretty" | "silent"-packages/server/src/config.ts:322
config.secrets?public{ source?: "auto" | "keyring" | "encrypted-file" | "env"; strict?: boolean; }-packages/server/src/config.ts:368
config.secrets.source?public"auto" | "keyring" | "encrypted-file" | "env"-packages/server/src/config.ts:302
config.secrets.strict?publicboolean-packages/server/src/config.ts:303
config.server?public{ basePath?: string; cors?: { allowCredentials?: boolean; allowHeaders?: string[]; allowMethods?: string[]; allowOrigins?: string[]; maxAgeSeconds?: number; }; csrf?: { cookieName?: string; enabled?: boolean; headerName?: string; safeMethods?: string[]; }; host?: string; idempotency?: { checkBodyFingerprint?: boolean; enabled?: boolean; lruCacheSize?: number; requireKey?: "off" | "warn" | "enforce"; ttlSeconds?: number; }; port?: number; rateLimit?: { enabled?: boolean; perIpRequests?: number; windowMs?: number; }; shutdown?: { drainTimeoutMs?: number; }; sse?: { enabled?: boolean; keepAliveMs?: number; path?: string; }; stream?: { disconnectGracePeriodMs?: number; disconnectPolicy?: "continue" | "pause-on-disconnect" | "abort-on-disconnect"; perConnectionQueueLimit?: number; replayBuffer?: { maxEvents?: number; ttlSeconds?: number; }; }; trustProxy?: boolean; ws?: { commentarySanitization?: { applyToEvents?: string[]; policy?: "wrap" | "strip" | "pass-through"; }; enabled?: boolean; path?: string; ticketTtlMs?: number; }; }-packages/server/src/config.ts:365
config.server.basePath?publicstring-packages/server/src/config.ts:257
config.server.cors?public{ allowCredentials?: boolean; allowHeaders?: string[]; allowMethods?: string[]; allowOrigins?: string[]; maxAgeSeconds?: number; }-packages/server/src/config.ts:258
config.server.cors.allowCredentials?publicboolean-packages/server/src/config.ts:153
config.server.cors.allowHeaders?publicstring[]-packages/server/src/config.ts:155
config.server.cors.allowMethods?publicstring[]-packages/server/src/config.ts:154
config.server.cors.allowOrigins?publicstring[]-packages/server/src/config.ts:152
config.server.cors.maxAgeSeconds?publicnumber-packages/server/src/config.ts:158
config.server.csrf?public{ cookieName?: string; enabled?: boolean; headerName?: string; safeMethods?: string[]; }-packages/server/src/config.ts:259
config.server.csrf.cookieName?publicstring-packages/server/src/config.ts:166
config.server.csrf.enabled?publicboolean-packages/server/src/config.ts:165
config.server.csrf.headerName?publicstring-packages/server/src/config.ts:167
config.server.csrf.safeMethods?publicstring[]-packages/server/src/config.ts:168
config.server.host?publicstring-packages/server/src/config.ts:255
config.server.idempotency?public{ checkBodyFingerprint?: boolean; enabled?: boolean; lruCacheSize?: number; requireKey?: "off" | "warn" | "enforce"; ttlSeconds?: number; }-packages/server/src/config.ts:261
config.server.idempotency.checkBodyFingerprint?publicboolean-packages/server/src/config.ts:187
config.server.idempotency.enabled?publicboolean-packages/server/src/config.ts:184
config.server.idempotency.lruCacheSize?publicnumber-packages/server/src/config.ts:188
config.server.idempotency.requireKey?public"off" | "warn" | "enforce"-packages/server/src/config.ts:185
config.server.idempotency.ttlSeconds?publicnumber-packages/server/src/config.ts:186
config.server.port?publicnumber-packages/server/src/config.ts:256
config.server.rateLimit?public{ enabled?: boolean; perIpRequests?: number; windowMs?: number; }-packages/server/src/config.ts:260
config.server.rateLimit.enabled?publicboolean-packages/server/src/config.ts:175
config.server.rateLimit.perIpRequests?publicnumber-packages/server/src/config.ts:177
config.server.rateLimit.windowMs?publicnumber-packages/server/src/config.ts:176
config.server.shutdown?public{ drainTimeoutMs?: number; }-packages/server/src/config.ts:262
config.server.shutdown.drainTimeoutMs?publicnumber-packages/server/src/config.ts:195
config.server.sse?public{ enabled?: boolean; keepAliveMs?: number; path?: string; }-packages/server/src/config.ts:266
config.server.sse.enabled?publicboolean-packages/server/src/config.ts:246
config.server.sse.keepAliveMs?publicnumber-packages/server/src/config.ts:248
config.server.sse.path?publicstring-packages/server/src/config.ts:247
config.server.stream?public{ disconnectGracePeriodMs?: number; disconnectPolicy?: "continue" | "pause-on-disconnect" | "abort-on-disconnect"; perConnectionQueueLimit?: number; replayBuffer?: { maxEvents?: number; ttlSeconds?: number; }; }-packages/server/src/config.ts:264
config.server.stream.disconnectGracePeriodMs?publicnumber-packages/server/src/config.ts:213
config.server.stream.disconnectPolicy?public"continue" | "pause-on-disconnect" | "abort-on-disconnect"-packages/server/src/config.ts:210
config.server.stream.perConnectionQueueLimit?publicnumber-packages/server/src/config.ts:215
config.server.stream.replayBuffer?public{ maxEvents?: number; ttlSeconds?: number; }-packages/server/src/config.ts:214
config.server.stream.replayBuffer.maxEvents?publicnumber-packages/server/src/config.ts:202
config.server.stream.replayBuffer.ttlSeconds?publicnumber-packages/server/src/config.ts:203
config.server.trustProxy?publicboolean-packages/server/src/config.ts:263
config.server.ws?public{ commentarySanitization?: { applyToEvents?: string[]; policy?: "wrap" | "strip" | "pass-through"; }; enabled?: boolean; path?: string; ticketTtlMs?: number; }-packages/server/src/config.ts:265
config.server.ws.commentarySanitization?public{ applyToEvents?: string[]; policy?: "wrap" | "strip" | "pass-through"; }-packages/server/src/config.ts:239
config.server.ws.commentarySanitization.applyToEvents?publicstring[]-packages/server/src/config.ts:223
config.server.ws.commentarySanitization.policy?public"wrap" | "strip" | "pass-through"-packages/server/src/config.ts:222
config.server.ws.enabled?publicboolean-packages/server/src/config.ts:232
config.server.ws.path?publicstring-packages/server/src/config.ts:233
config.server.ws.ticketTtlMs?publicnumber-packages/server/src/config.ts:234
config.storage?public{ encryption?: { cipher?: string; enabled?: boolean; passphraseRef?: string; }; mode?: "lib" | "server"; path?: string; walCheckpointIntervalMs?: number; }-packages/server/src/config.ts:366
config.storage.encryption?public{ cipher?: string; enabled?: boolean; passphraseRef?: string; }-packages/server/src/config.ts:285
config.storage.encryption.cipher?publicstring-packages/server/src/config.ts:274
config.storage.encryption.enabled?publicboolean-packages/server/src/config.ts:273
config.storage.encryption.passphraseRef?publicstring-packages/server/src/config.ts:275
config.storage.mode?public"lib" | "server"-packages/server/src/config.ts:283
config.storage.path?publicstring-packages/server/src/config.ts:282
config.storage.walCheckpointIntervalMs?publicnumber-packages/server/src/config.ts:284
consolidator?readonlyConsolidatorLikeOptional consolidator surface (@graphorin/memory). Phase 14c starts/stops the runtime alongside the server lifecycle and surfaces its status through /v1/health.packages/server/src/app.ts:338
healthProbes?readonly() => | HealthCheckOptions | Promise<HealthCheckOptions>Optional probes that augment /v1/health. Provided by consumer code (e.g. embedder provides embedderLoaded).packages/server/src/app.ts:354
hooks?readonlyLifecycleHooksLifecycle hook overrides.packages/server/src/app.ts:362
mcp?readonlyMcpApi-packages/server/src/app.ts:331
memory?readonlyMemoryApi-packages/server/src/app.ts:329
metricRegistry?readonlyMetricRegistryOptional Prometheus metric registry override. When omitted, the server constructs the canonical registry from createServerMetricRegistry.packages/server/src/app.ts:360
now?readonly() => numberWall-clock provider for tests.packages/server/src/app.ts:364
probeCipherPeer?readonly() => Promise<void>Override the cipher peer probe. Tests inject a stub.packages/server/src/app.ts:366
replay?readonlyReplayApiOptional replay API consumed by the scope-enforced replay endpoints. Phase 14c.packages/server/src/app.ts:349
runs?readonlyRunStateTrackerOptional pre-built tracker. Tests inject deterministic timing.packages/server/src/app.ts:323
sessions?readonlySessionApiOptional in-process domain adapters wired into REST routes.packages/server/src/app.ts:328
skills?readonlySkillsApi-packages/server/src/app.ts:330
skipHardening?readonlybooleanSkip applyProcessHardening (tests).packages/server/src/app.ts:370
skipListen?readonlybooleanSkip starting the actual listener (tests).packages/server/src/app.ts:372
store?readonlyGraphorinSqliteStorePre-built SQLite store. Tests inject an in-memory store.packages/server/src/app.ts:321
triggers?readonlyTriggersDaemonInputOptional triggers daemon — pass an existing one (e.g. built from createScheduler) or a triggers configuration the server should wrap with the daemon adapter.packages/server/src/app.ts:344
validatedConfig?readonlyServerConfigSpecOptional pre-validated config. When supplied, config is ignored and the schema validation step is skipped. Useful for tests + the graphorin migrate CLI command which bypasses the listener.packages/server/src/app.ts:319
version?readonlystringOverride the package version reported on /v1/health.packages/server/src/app.ts:368
workflows?readonlyWorkflowRegistry-packages/server/src/app.ts:326