Skip to content

Commit 9edcb15

Browse files
authored
Merge branch 'trunk' into docs/nsql-ux-improvements
2 parents f6e8bb5 + 9c79a1e commit 9edcb15

59 files changed

Lines changed: 180 additions & 97 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

website/docs/api/tls/index.md

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -80,9 +80,26 @@ runtime:
8080
8181
To learn more about secrets, see [Secret Stores](../../components/secret-stores).
8282
83+
## Certificate Hot-Reload
84+
85+
When TLS is configured using **file paths** (`certificate_file` / `key_file` or `--tls-certificate-file` / `--tls-key-file`), the runtime automatically watches the certificate and key files for changes and reloads them without restarting. This is useful when certificates are rotated by external tools such as SPIRE, cert-manager, or kubelet.
86+
87+
- In-flight TLS connections are unaffected — only new handshakes use the rotated certificate.
88+
- If a rotated file contains invalid PEM data, the runtime logs the error and continues serving with the previous certificate.
89+
- File changes are detected via polling (every 2 seconds). Atomic file renames are handled correctly.
90+
91+
When TLS is configured using **inline values** (`certificate` / `key`, including `${secrets:…}` references), certificates are loaded once at startup and are not automatically reloaded.
92+
93+
The `runtime_tls_reload_total` OTel counter tracks reload attempts:
94+
95+
| Label | Values |
96+
| -------- | ------------------------- |
97+
| `scope` | `public`, `cluster` |
98+
| `result` | `ok`, `io_error`, `parse_error` |
99+
83100
:::info
84101

85-
Changes to TLS configuration are not applied at runtime and will only take effect on startup.
102+
When using inline certificates or secrets (`certificate` / `key`), changes are not applied at runtime and will only take effect on restart.
86103

87104
:::
88105

website/docs/components/catalogs/ducklake.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -198,6 +198,7 @@ Spice integrates with multiple secret stores to help manage sensitive data secur
198198

199199
:::warning[Limitations]
200200

201+
- Spice uses DuckDB 1.4.4, which supports DuckLake format versions 0.1, 0.2, and 0.3 only. Catalogs created with DuckDB 1.5.x or later use format v0.4+, which is not currently supported.
201202
- The DuckLake DuckDB extension is downloaded at runtime on first use, requiring network connectivity.
202203
- The `information_schema` and `pg_catalog` system schemas are automatically filtered out during discovery.
203204
- Catalog refresh is non-incremental — a full re-query of `information_schema` is performed on each refresh cycle.

website/docs/components/catalogs/index.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ Supported Catalog Connectors include:
2929
| `databricks` | Databricks | Beta | Spark Connect, S3/Delta Lake |
3030
| `iceberg` | Apache Iceberg | Beta | Parquet |
3131
| `spice.ai` | Spice.ai Cloud Platform | Beta | Arrow Flight |
32-
| `ducklake` | DuckLake | Alpha | Parquet |
32+
| `ducklake` | DuckLake | Beta | Parquet |
3333
| `glue` | AWS Glue | Alpha | Parquet, Iceberg |
3434
| `snowflake` | Snowflake | Alpha | Snowflake SQL |
3535
| `pg` | PostgreSQL / Redshift | Alpha | PostgreSQL Wire Protocol |

website/docs/components/data-accelerators/cayenne/deployment.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ For point-lookup-heavy workloads, size `cayenne_segment_cache_mb` generously —
5858

5959
| Parameter | Description |
6060
| --------------------- | --------------------------------------------------------- |
61-
| `upload_concurrency` | Parallel segment uploads during refresh / append commits. |
61+
| `cayenne_upload_concurrency` | Parallel segment uploads during refresh / append commits. |
6262

6363
For S3 Express One Zone, 8–16 parallel uploads typically maximize throughput. For standard S3 across regions, higher concurrency helps hide per-request latency.
6464

website/docs/components/data-accelerators/index.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -31,10 +31,10 @@ By default, datasets are locally materialized using in-memory Arrow records.
3131
| ---------- | ------------------------------- | ----------------- | ---------------- |
3232
| `cayenne` | [Spice Cayenne][cayenne] | Release Candidate | `file`, `file_create`, `file_update` |
3333
| `arrow` | In-Memory Arrow Records | Stable | `memory` |
34-
| `duckdb` | Embedded [DuckDB][duckdb] | Stable | `memory`, `file` |
34+
| `duckdb` | Embedded [DuckDB][duckdb] | Stable | `memory`, `file`, `file_create`, `file_update` |
3535
| `postgres` | Attached [PostgreSQL][postgres] (Spice.ai Enterprise) | Release Candidate | N/A |
36-
| `sqlite` | Embedded [SQLite][sqlite] | Release Candidate | `memory`, `file` |
37-
| `turso` | Embedded [Turso][turso] | Beta | `memory`, `file` |
36+
| `sqlite` | Embedded [SQLite][sqlite] | Release Candidate | `memory`, `file`, `file_create`, `file_update` |
37+
| `turso` | Embedded [Turso][turso] | Beta | `memory`, `file`, `file_create`, `file_update` |
3838

3939
[cayenne]: ./cayenne/index.md
4040
[duckdb]: ./duckdb/index.md

website/docs/components/data-accelerators/postgres/index.md

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,6 @@ The connection to PostgreSQL can be configured by providing the following `param
3737
- `require`: This mode requires a TLS connection.
3838
- `prefer`: (default) This mode will try to establish a secure TLS connection if possible, but will connect insecurely if the server does not support TLS.
3939
- `disable`: This mode will not attempt to use a TLS connection, even if the server supports it.
40-
- `allow`: This mode will try a non-TLS connection first, then retry with TLS if the server requires it.
4140
- `pg_sslrootcert`: Optional. Path to a custom PEM certificate file that the connector will trust.
4241
- `pg_connection_pool_min`: Optional. The minimum number of connections to keep open in the pool, lazily created when requested. Default is `5`.
4342
- `connection_pool_size`: Optional. The maximum number of connections created in the connection pool. Default is `10`.

website/docs/components/data-connectors/abfs.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@ The dataset name cannot be a [reserved keyword](../../reference/spicepod/keyword
6666

6767
| Parameter name | Description |
6868
| --------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------- |
69-
| `file_format` | Specifies the data format. Required if not inferrable from `from`. Options: `parquet`, `csv`. Refer to [File Formats](./#file-formats) for details. |
69+
| `file_format` | Specifies the data format. Required if not inferrable from `from`. Options: `parquet`, `csv`, `json`. Refer to [File Formats](./#file-formats) for details. |
7070
| `abfs_account` | Azure storage account name |
7171
| `abfs_container_name` | Azure container name |
7272
| `abfs_sas_string` | SAS (Shared Access Signature) Token to use for authorization |
@@ -79,6 +79,8 @@ The dataset name cannot be a [reserved keyword](../../reference/spicepod/keyword
7979
| `abfs_proxy_excludes` | A list of hosts to exclude from proxy connections |
8080
| `abfs_disable_tagging` | Disable tagging objects. Use this if your backing store doesn't support tags |
8181
| `allow_http` | Allow insecure HTTP connections |
82+
| `client_timeout` | Optional. Timeout for Azure client operations. |
83+
| `abfs_versioning` | Enable Azure blob versioning. Default: `disabled` |
8284
| `hive_partitioning_enabled` | Enable partitioning using hive-style partitioning from the folder structure. Defaults to `false` |
8385
| `schema_source_path` | Specifies the URL used to infer the dataset schema. Default to the most recently modified file |
8486

website/docs/components/data-connectors/adbc.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -112,6 +112,7 @@ The dataset name cannot be a [reserved keyword](../../reference/spicepod/keyword
112112
| `adbc_schema` | Optional. Sets the default schema for the connection. |
113113
| `connection_pool_size` | Optional. Maximum number of connections in the connection pool. Default: `5`. |
114114
| `connection_pool_min_idle` | Optional. Minimum number of idle connections in the pool. Default: `1`. |
115+
| `query_federation` | Optional. Controls whether queries are federated to the ADBC source. Values: `enabled`, `disabled`. Default: `enabled`. |
115116

116117
:::warning[In-memory databases]
117118
In-memory database URIs (e.g., `:memory:` or URIs containing `mode=memory`) are not supported.

website/docs/components/data-connectors/clickhouse.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,9 @@ The table below shows the ClickHouse data types supported, along with the type m
8989
| `FixedString` | `Utf8` |
9090
| `UUID` | `Utf8` |
9191
| `Date` | `Date32` |
92+
| `Date32` | `Date32` |
9293
| `DateTime` | `Timestamp(Second, None)` |
94+
| `DateTime64` | `Timestamp(Second, None)` |
9395
| `Nullable(T)` | Mapped inner type `T` |
9496

9597
## Examples

website/docs/components/data-connectors/databricks/index.md

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -91,6 +91,17 @@ The following parameters apply only when `mode` is `sql_warehouse` and control c
9191
| `statement_max_retries` | Optional. Maximum number of poll retries when waiting for async statement completion. Default: `14`. |
9292
| `disable_on_permanent_error` | Optional. When `true`, non-retryable errors (401, 403, 404) permanently disable the connector. Default: `true`. |
9393

94+
#### Rate control
95+
96+
The Databricks connector supports per-dataset rate control parameters when `mode` is `spark_connect` or `sql_warehouse`. These override [`runtime.params`](../../reference/spicepod/runtime#runtimeparams) HTTP rate control defaults. When [`runtime.source_rate_control.state_location`](../../reference/spicepod/runtime#runtimesource_rate_control) is configured, rate limits are coordinated across the cluster.
97+
98+
| Parameter Name | Description |
99+
| --------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------- |
100+
| `requests_per_second_limit` | Optional. Maximum HTTP requests per second to the Databricks endpoint. Overrides `runtime.params.http_requests_per_second_limit`. |
101+
| `requests_per_minute_limit` | Optional. Maximum HTTP requests per minute to the Databricks endpoint. Overrides `runtime.params.http_requests_per_minute_limit`. |
102+
| `rate_control_jitter_min` | Optional. Minimum random delay before HTTP requests when rate control is active. Defaults to `5ms` when a rate limit is configured. Accepts durations like `5ms`. |
103+
| `rate_control_jitter_max` | Optional. Maximum random delay before HTTP requests when rate control is active. Defaults to `10ms` when a rate limit is configured. Accepts durations like `10ms`. |
104+
94105
## Authentication
95106

96107
### Personal access token

0 commit comments

Comments
 (0)