Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
33 commits
Select commit Hold shift + click to select a range
5e9da21
Document the missing OIDC configuration options
glasstiger Aug 21, 2026
dc7276c
Note the state parameter requirement in the OIDC guide
glasstiger Aug 21, 2026
9e3fb2c
Merge branch 'main' into ia_oidc_config_options
glasstiger Aug 21, 2026
8724ece
Document the OIDC constraints which fail server startup
glasstiger Aug 21, 2026
5d31797
Note that endpoint discovery supersedes the endpoint settings
glasstiger Aug 21, 2026
438f84e
Document the Device Code Flow in the OIDC guide
glasstiger Aug 21, 2026
a890f52
Correct what the device authorization endpoint setting controls
glasstiger Aug 21, 2026
6da5c5b
Distinguish the millisecond settings which accept a duration
glasstiger Aug 21, 2026
97559b4
Give one rule for enabling the state parameter
glasstiger Aug 21, 2026
88ee167
Correct what happens when the groups claim is missing
glasstiger Aug 21, 2026
93dc7f7
Add the missing QuestDB configuration to the PingFederate guide
glasstiger Aug 21, 2026
eec6f6d
Use the repo's spelling convention in the state parameter entry
glasstiger Aug 21, 2026
6dab137
Name both QuestDB configuration sections after their provider
glasstiger Aug 21, 2026
e76c0f9
Document the settings endpoint clients read the OIDC configuration from
glasstiger Aug 21, 2026
ad08e2e
Show how to run the Device Code Flow
glasstiger Aug 21, 2026
8e96bb8
Correct what the public keys expiry controls
glasstiger Aug 21, 2026
58c7dfd
Name the response each protocol gives when the claims are missing
glasstiger Aug 21, 2026
fb1a3c2
Remove the Device Code Flow documentation
glasstiger Aug 21, 2026
8733605
Correct when QuestDB reads the OIDC public keys
glasstiger Aug 21, 2026
d827870
Say what disabling the user info cache does in each flow
glasstiger Aug 21, 2026
952e8d5
Describe the whole OIDC guide, not just Web Console SSO
glasstiger Aug 21, 2026
8792eac
Say what the OIDC settings actually require and enforce
glasstiger Aug 21, 2026
b875d2d
Document what the settings endpoint guarantees to a client
glasstiger Aug 21, 2026
afb0e2a
Correct what overriding the settings context path does
glasstiger Aug 21, 2026
7ac66b9
Stop overstating what the OIDC settings guarantee
glasstiger Aug 21, 2026
7623732
Complete what the settings endpoint section tells a client
glasstiger Aug 21, 2026
32a1739
Point the client pages at the OIDC settings endpoint
glasstiger Aug 21, 2026
6703c21
Move the OIDC guide entries out of the reference section
glasstiger Aug 21, 2026
5e815f7
Tell clients which token to send, and correct three claims
glasstiger Aug 23, 2026
390408c
Say what QuestDB checks when it validates a token itself
glasstiger Aug 23, 2026
4ddda15
Scope three OIDC options to what the server actually does
glasstiger Aug 23, 2026
1b30683
Stop the client pages naming the wrong token
glasstiger Aug 23, 2026
e7bd184
Give the ingestion example its own client id, and guard its lookups
glasstiger Aug 23, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 7 additions & 0 deletions documentation/changelog.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@ This page tracks significant updates to the QuestDB documentation.
- [ALTER TABLE SET FORMAT](/docs/query/sql/alter-table-set-format/) - New reference page for switching a table's partition storage format between `NATIVE` and `PARQUET`
- [QWP configuration](/docs/configuration/qwp/) - Server-side settings for the QWP ingestion (`/write/v4`) and query (`/read/v1`) endpoints
- [Check timestamp order](/docs/cookbook/sql/time-series/check-timestamp-order/) and [Check column sort order](/docs/cookbook/sql/advanced/check-column-sort-order/) - Two cookbook recipes that detect unsorted data with `lag()`: whether a table, CSV import or external Parquet file is ordered by its timestamp, and whether one column is sorted with respect to another
- [OIDC settings endpoint](/docs/security/oidc/#settings-endpoint) - How a client reads QuestDB's OIDC configuration from `/settings` to discover the authorization and token endpoints, and whether PKCE and the `state` parameter are required

### Reference

Expand All @@ -48,9 +49,15 @@ This page tracks significant updates to the QuestDB documentation.
- Added the [`cairo.sql.parquet.cache.memory.size`](/docs/configuration/cairo-engine/) configuration property (256 MB default), deprecating the slot-based `cairo.sql.parquet.frame.cache.capacity`
- Documented [`cairo.root`](/docs/configuration/cairo-engine/) absolute-path behavior: the `conf`, `import`, `export`, `tmp`, and `.checkpoint` directories become siblings of the specified directory rather than children of the server root, so leave it at the default under Docker
- [read_parquet](/docs/query/functions/parquet/#designated-timestamp) - Documented nominating a designated timestamp on a Parquet file with `TIMESTAMP()` (applied directly, on a sub-query, or on a CTE), and importing a file into a table with `INSERT INTO ... SELECT` or `CREATE TABLE AS`
- Documented the OIDC configuration options that were missing from the [OIDC configuration page](/docs/configuration/oidc/): `acl.oidc.state.required`, `acl.oidc.public.keys.expiry`, `acl.oidc.response.buffer.size`, `acl.oidc.string.pool.capacity`, and `acl.oidc.device.authorization.endpoint`; also corrected `acl.oidc.pkce.enabled` to its real name `acl.oidc.pkce.required`, and documented `acl.oidc.groups.claim` as mandatory with no default

### Updated

- [OpenID Connect (OIDC)](/docs/security/oidc/#1-secret-generation) - Noted that some Identity Providers require the `state` parameter in the authorization request, and that `acl.oidc.state.required` should be set to `true` for those providers
- [Which token to send](/docs/security/oidc/#which-token-to-send) - Documented that `acl.oidc.groups.encoded.in.token` decides whether a client sends the access token or the ID token, and that sending the wrong one fails authentication
- [`acl.oidc.groups.encoded.in.token`](/docs/configuration/oidc/#acloidcgroupsencodedintoken) - Documented what QuestDB validates when it checks a token itself: the signature, the audience and the presence of the claims, but not `exp`, `nbf` or `iss`, so an expired token is still accepted
- Scoped three [OIDC options](/docs/configuration/oidc/) to what the server actually does: `acl.oidc.audience` is only checked when the groups are encoded in the token, the mandatory `openid` in `acl.oidc.scope` is enforced by the provider rather than at startup, and `acl.oidc.ropc.flow.enabled` makes QuestDB itself exchange HTTP basic and PGWire credentials for a token at the provider
- [PingFederate SSO](/docs/security/oidc/#questdb-configuration-for-pingfederate) - Added the missing QuestDB `server.conf` block to the walkthrough, which relied on defaults for settings that have none
- Client libraries rewritten for the QWP binary protocol, unifying ingestion and streaming SQL queries under one handle: [Java](/docs/connect/clients/java/), [Python](/docs/connect/clients/python/), [Go](/docs/connect/clients/go/), [C & C++](/docs/connect/clients/c-and-cpp/), [Rust](/docs/connect/clients/rust/), and [.NET](/docs/connect/clients/dotnet/)
- [Web Console](/docs/getting-started/web-console/overview/) - Documented query sharing by link and tab import/export in the [code editor](/docs/getting-started/web-console/code-editor/), custom AI providers and per-provider permission levels in [QuestDB AI](/docs/getting-started/web-console/questdb-ai/), automatic column sizing in the [result grid](/docs/getting-started/web-console/result-grid/), and the storage policy section in [table details](/docs/getting-started/web-console/table-details/)
- [AI coding agents](/docs/getting-started/ai-coding-agents/) - Repositioned around the agent skill and the Web Console MCP bridge together
Expand Down
17 changes: 15 additions & 2 deletions documentation/configuration/http-server.md
Original file line number Diff line number Diff line change
Expand Up @@ -493,8 +493,21 @@ Context path for the file import service.
- **Default**: `/settings`
- **Reloadable**: no

Context path for the service which provides server-side settings to the Web
Console.
Context path for the service that serves server-side settings to clients, such
as an OIDC client discovering the provider's endpoints from the
[settings endpoint](/docs/security/oidc/#settings-endpoint).

Accepts a comma-separated list of paths. Setting it adds paths rather than
moving the service: QuestDB keeps serving the default path as well, so the
[Web Console](/docs/getting-started/web-console/overview/), which does not read
this setting, keeps working.

The default path follows
[`http.context.web.console`](#httpcontextwebconsole), so it is `/settings` only
while that setting is at its default. Setting
`http.context.web.console=/console` makes the preserved path
`/console/settings`, and bare `/settings` is then served only if it is listed
here explicitly.

### http.context.table.status

Expand Down
4 changes: 4 additions & 0 deletions documentation/configuration/iam.md
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,10 @@ Enables or disables the built-in admin user.
When enabled, the browser's basic auth popup window is used instead of the
Web Console's login screen. Present for backwards compatibility only.

Cannot be enabled together with
[`acl.oidc.enabled`](/docs/configuration/oidc/#acloidcenabled). Setting both
to `true` fails server startup.

### acl.enabled

- **Default**: `true`
Expand Down
Loading
Loading