This page answers three questions: what it does, what it does not do, and where the boundaries are. Every configuration key below maps to real code in the repository — there are no "planned" entries.
Describes the current release. Default values are in the "Default" column.
Startup warns when replicas are detected without them; the semantic cache pool is still per-process (see Known Limits)
Configuration hot update
Partial
—
—
Quota and monitoring change memory only (lost on restart); sanitization and circuit-breaker settings are persisted; instance config is persisted but a sync deletes instances absent from YAML
Three Redis switches; the semantic cache pool is still per-process
Fine-grained RBAC
Yes
53 permission codes plus URL rules
SSO / OIDC
No
Username/password plus JWT only
High-availability orchestration
No
K8s examples only, no operational orchestration
SLA and paid support
No
An open-source project makes no SLA commitment
The conclusion is blunt: apart from SSO and orchestration, every enterprise capability is currently in the open-source build. If there is to be a commercial path, the line has to be drawn here — that is a product decision, not a technical one.
A port-only health check does not mean "usable" — check_type: socket_connect proves the port is open; an upstream returning errors may still be reported healthy.
The semantic cache L2/L3 pool is per-process — with multiple replicas the hit rate is divided by the replica count, and nothing signals why (issue #1002).
The streaming guard does not join across chunks — a sensitive string split between two chunks is not detected.
Reversible sanitization restores chunk by chunk in streaming — a split placeholder is not restored, so the client sees the placeholder text (the real value never left).
The streaming path does not run the PII detector — non-streaming responses containing PII are not cached; the streaming path does not yet apply this check.
Quota hot edits are not persisted — a console change reverts to the configuration file on restart (only QuotaConfigController surfaces this: restart-level fields return 400 with RESTART_REQUIRED).