Tinybird Local on arm64 requires a 4KiB page size kernel¶
The arm64 Tinybird Local image requires a Linux kernel with a 4KiB memory page size. Most distributions use 4KiB, so most setups need no change. On a kernel with a larger page size, ClickHouse® does not start.
If your kernel uses a larger page size, switch to a 4KiB kernel flavor if your distribution offers one, use a distribution that defaults to 4KiB, or run Tinybird Local on amd64. See Tinybird Local.
amd64 hosts, Tinybird Cloud, and your Workspaces are not affected.
See secondary indexes in Data Source settings¶
The Settings tab of a Data Source in Forward now lists its secondary indexes, including the expression, type, and granularity of each one. Settings you haven't configured show an empty state, such as "No indexes", instead of disappearing, and long values like sorting keys wrap without breaking the layout.
GET /v0/datasources now returns secondary indexes in the engine.indexes field, matching the single Data Source endpoint. In Classic, index granularity now shows the correct value instead of repeating the index type.
Disable block deduplication on Data Sources¶
Data Sources now accept the replicated_deduplication_window engine setting. It sets how many recent inserted blocks ClickHouse® remembers to detect and skip duplicated data. Set it to 0 when you delete and reingest the same data, or when a Materialized View writes identical blocks that you need to keep:
ENGINE "MergeTree"
ENGINE_SORTING_KEY "timestamp"
ENGINE_SETTINGS "replicated_deduplication_window=0"
You can only lower this setting. The default and maximum value is 10000. See engine settings.
Breaking changes¶
- Tinybird Local on arm64 requires a 4KiB page size kernel: The arm64 image runs only on hosts whose Linux kernel uses a 4KiB memory page size. On a larger page size, switch to a 4KiB kernel flavor, use a distribution that defaults to 4KiB, or run Tinybird Local on amd64. amd64 hosts are not affected.
- SQL API queries require a read scope: The SQL API now returns HTTP 403 when the Token has none of the
ADMIN,WORKSPACE:READ_ALL,DATASOURCES:READ,PIPES:READ,PIPES:CREATE, orORG_DATASOURCES:READscopes. This includes queries that don't read any table, such as aSELECT 1health check with aDATASOURCES:APPENDToken. Use a Token with a read scope for queries. - Pipes with JWT fixed parameters are only queryable through their own Endpoint: Reaching a Pipe protected by JWT
fixed_paramsthrough the SQL API or from another Pipe now returns HTTP 403. Call the Pipe's Endpoint instead, where the fixed parameters are always applied. - Tinybird MCP returns tool results as text: Tools no longer include
structuredContentin their results.call_endpointnow rejects parameters that the Endpoint doesn't define instead of ignoring them, and Endpoint failures now come back as tool errors. Update clients that readstructuredContentto parse the text result. - Deployments reject raw
DateTimepartition keys: New or changed Data Sources can no longer use a bareDateTimeorDateTime64column asENGINE_PARTITION_KEY, because it creates too many parts. Use an expression such astoStartOfHour(timestamp)ortoDate(timestamp). - Stricter rules for display names: Token, Connection, Organization, and variable names are now limited to 100 characters and can't contain
<,>, quotes, or backticks. Create and update requests with an invalid name return HTTP 400.
Improvements and bug fixes¶
- [Forward]: Deployments that alter a Data Source in place now validate
ENGINE_SETTINGSagainst the same allowlist used for new Data Sources. - [Forward]: Deleting a deployment or discarding a staging deployment no longer leaves behind Materialized Views that could block later deployments.
- [Forward]: Deployments now check bucket access for S3 Connections that use static access keys, so a missing or inaccessible bucket fails the deployment instead of a later import or sink job.
- [Forward]:
FORWARD_QUERYerrors now name incompatible columns with their expected and actual types, and include the ClickHouse® error for invalid queries. - [Forward]: Materialized View backfill warnings now name the affected Pipe instead of an internal table identifier.
- [Forward]: The Query tab now shows node errors in a single panel, marks missing required parameters, and scrolls to the parameter bar when you test values.
- [Forward]: Refreshing a Token by name or ID, including with
tb token refresh, now also rotates it in active deployments. - [All]: Renaming a Token to a name that's already in use now fails, matching Token creation.
- [All]: Force-deleting a Data Source now cleans up all its Copy Pipes, even when some references are stale.
- [All]: Pipe parameters named after other Python builtins, such as
propertyorobject, work again. A Pipe with an invalid template no longer breaks the OpenAPI document for the whole Workspace.