UPPER_SNAKE_CASE (e.g. EXTRACTION_DEFAULT_METHOD, COPILOT_TEMPERATURE), with a few historical lowercase keys (e.g. copilot_model). All values are persisted as strings, so when sending bools or numbers, stringify them ("true", "0.7").
Categories defined by the registry: copilot, agents, tools, knowledge-indexing, knowledge-retrieval, compaction, sources.
Common Patterns
Use GET to discover the full set of settings (with their defaults, current values, types, and category metadata). Use PUT for bulk updates from a settings UI. Use DELETE on a key to revert a single override; usereset-category to revert an entire group at once.
GET /api/settings
Return every setting in the registry with its default value, current override (if any), category, type, and (for secret settings) a masked representation. Category metadata accompanies the response so a UI can render labels and grouping.PUT /api/settings
Bulk-update overrides. The body is{ "settings": { key: value, ... } }. Each value is validated against its registry definition; on any failure the whole request is rejected with per-key errors and nothing is written.
For secret settings, sending back the mask placeholder unchanged is silently skipped (so a UI can round-trip the full settings object without leaking or clobbering secrets).
DELETE /api/settings/
Remove a single override, reverting that setting to its registry default. Returns the key and the default value (empty string for secret-typed settings).string
required
A registry key. Unknown keys return 404.
POST /api/settings/reset-category
Remove every override in a category at once. Returns the list of keys that were reset.string
required
One of the registry categories:
copilot, agents, tools, knowledge-indexing, knowledge-retrieval, compaction, sources. Unknown categories return 400.Registry keys reference
A high-level map of what’s in the registry. The authoritative source for current defaults, types, and validation rules isGET /api/settings against your project. These tables tell you what each key controls so you can find the right knob without round-tripping.
copilot (8 keys)
agents (3 keys)
tools (12 keys)
knowledge-indexing (41 keys)
Covers chunking, embedding model selection, PageIndex tree-search params, GraphIndex enrichment, Doc2JSON extraction, full-document strategy, and BM25 indexing. Key families:- Chunk-embed strategy:
CHUNK_EMBED_DEFAULT_CHUNK_SIZE,CHUNK_EMBED_DEFAULT_OVERLAP,CHUNK_EMBED_EMBEDDING_MODEL - PageIndex strategy (16 keys):
PAGEINDEX_INDEXING_MODEL,PAGEINDEX_LLM_MAX_CONCURRENT,PAGEINDEX_TOC_*,PAGEINDEX_MAX_*,PAGEINDEX_MIN_*,PAGEINDEX_SUMMARY_TOKEN_THRESHOLD,PAGEINDEX_DOC_DESCRIPTION_MAX_TOKENS - GraphIndex strategy (8 keys):
GRAPHINDEX_INDEXING_MODEL,GRAPHINDEX_ENRICHMENT_MODEL,GRAPHINDEX_EMBEDDING_MODEL,GRAPHINDEX_ENRICHMENT_MAX_* - Full-document strategy (4 keys):
FULLDOC_SUMMARY_MODEL,FULLDOC_EMBEDDING_MODEL,FULLDOC_SUMMARY_INPUT_CHARS,FULLDOC_SUMMARY_MAX_TOKENS - Doc2JSON strategy (8 keys):
DOC2JSON_*for window size, overlap, extraction model, image use, retries - Cross-cutting:
EXTRACTION_DEFAULT_METHOD(mistral/paddleocr/lighton/opendataloader/fitz/pdfplumber/auto),EMBEDDING_MAX_TOKENS_PER_BATCH,BM25_AUTO_INDEXING
knowledge-retrieval (19 keys)
compaction (5 keys)
sources (4 keys)
There are 92 registered keys total.
GET /api/settings is the authoritative live view.
Error Responses
Settings routes return{"error": "<message>"} (PUT also includes details with per-key errors). The codes below are the documentation labels for each failure mode.