chore(gateway): align config_schema.json with config DTOs#1812
chore(gateway): align config_schema.json with config DTOs#1812irvingouj@Devolutions (irvingoujAtDevolution) wants to merge 3 commits into
Conversation
The hand-maintained config schema had drifted from the dto module. Add missing surfaces (TlsVerifyStrict, MinRecordingStorageFreeSpace, JobQueueDatabase, TrafficAuditDatabase, AgentTunnel, __debug__.ws_keep_alive_interval and kerberos), fix the ngrok tunnel discriminator (proto -> Proto), correct the AI provider keys to match serde PascalCase (Lmstudio/Openai/Openrouter/AzureOpenai), and drop the incorrect Listeners root requirement (the field has serde default).
Let maintainers know that an action is required on their side
|
There was a problem hiding this comment.
Pull request overview
This PR re-syncs the hand-maintained config_schema.json with the Rust config.rs DTOs so that schema validation and documentation match the config that serde actually parses/serializes (without changing any Rust code).
Changes:
- Added missing top-level and definition surfaces (e.g.,
TlsVerifyStrict,MinRecordingStorageFreeSpace,JobQueueDatabase,TrafficAuditDatabase,AgentTunnel, and Kerberos /ws_keep_alive_intervalunder__debug__). - Fixed schema discriminators/keys to match serde output (e.g., ngrok tunnel tag key
Proto, AI provider keys likeLmstudio/Openai/Openrouter/AzureOpenai). - Dropped the incorrect root requirement for
Listeners(since the DTO uses#[serde(default)]).
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
The hand-maintained
config_schema.jsonhad drifted from theconfig.rsdtomodule; this re-syncs it attribute-by-attribute (Rust is the source of truth, no Rust changes). It adds missing surfaces (TlsVerifyStrict,MinRecordingStorageFreeSpace,JobQueueDatabase,TrafficAuditDatabase,AgentTunnel, and__debug__'sws_keep_alive_interval/kerberoswith the Kerberos type tree), fixes the ngrok tunnel discriminator (proto→Proto, matching#[serde(tag = "Proto")]), and drops the incorrectListenersroot requirement (the field has#[serde(default)]). It also corrects the AI provider keys to the names serde actually emits —Lmstudio/Openai/Openrouter/AzureOpenai— sincerename_all = "PascalCase"only capitalizes the first letter of each_-separated segment; note these awkward keys come from the Rust field names (openai,azure_openai, …), so ifOpenAi/AzureOpenAiare the intended config keys that should be a separate Rust-side#[serde(rename)]fix.