v0.1.0-alpha.479¶
Released 2026-10-09.
Features¶
Read Refusals¶
- A read that needs a table whose replica could not be built is refused, naming the table and the error the build recorded: HTTP 503 with code query.replica_build_failed and the table and reason as parameters, gRPC UNAVAILABLE, and the same message on the transports that carry only a message.
Role Assignments¶
- A multi-tenant deployment reads role assignments from Provisa, never from sign-in claims: a configuration that sets multitenancy with auth.assignments_source claims, stated or by default, does not load, the deployment does not start on it, and a settings change that would produce it is refused, each naming both settings and the value to use.
Changes¶
api¶
- A float subclass in a response body is encoded as its number
api-source¶
- A throttled call waits as long as the remote asks
- An API source may sign in with a refresh token or as a Google service account
- A refresh-token exchange returns the issuer's replacement, and a client may state no secret
- An access token for a source whose refresh token the issuer replaces on use
- A sign-in on a deployment without identities stores its token with no actor
auth¶
- A multi-tenant deployment that reads assignments from sign-in claims does not start
catalog¶
- The catalog types a column by the product's own vocabulary; a nested column is JSON
- The role's catalog is served over HTTP, and the JDBC driver reads it there
catalog-cache¶
- One rule for every source kind -- column names are loaded lazily
- A source registered from a specification is indexed with its fields
config¶
- The default public address is where a local install's UI is served
- An empty public address is not stated, and the shipped configs default to the served one
demo¶
- The demo model lets the org's admin write a prospective adopter
deps¶
- strawberry-graphql 0.327.2 clears CVE-2026-107727 and CVE-2026-107728; feature file regenerated
google-workspace¶
- The settings a Google Workspace source is set up with
- Reading a mailbox through the Gmail API, and a message into the canonical facts
- A Google Workspace source is added from the picker and its mail tables registered
- A source is connected with the organisation's Google client, and its form asks nothing about sign-in
governance¶
- A column's scope is changed only with the right to change who is served it (#194)
- Only widening a column's scope needs the right to grant it (#194)
mail-platforms¶
- An organisation enters a mail platform's client once
- The vault keeps a client secret its platform entry names
microsoft-365¶
- A mailbox read through Microsoft Graph as the six canonical mail tables
- A message whose HTML body Graph will not give keeps its row
- Microsoft 365 is a source type with its six mail tables and its loader
- A Microsoft 365 source is connected with the organisation's client and read
openapi¶
- A success answer declared as 2XX gives the table its columns
reads¶
- A table whose replica cannot be built refuses the read by name, not as a server fault
- The Neo4j endpoint and the table profile answer a refused read as the other surfaces do
replication¶
- A failed replica build is retried with a growing wait, and never given up
- A build carries what its source says of the rows it read
- A completed build's note is recorded on the replica and shown beside its state
secrets¶
- Personal secrets are addressed only within an organisation the caller belongs to
- A central secrets service is read inside the organisation's own prefix
- A refused secret name is answered 400 with its code; the API source auth writer checks it
settings¶
- A retry ceiling below the interval is refused where settings are loaded too
source-sign-in¶
- A source is signed in to its issuer by a person's approval
- An issuer's addresses may depend on the source, and the refresh token is written under the refresh lock
sources¶
- The canonical mail, calendar and task tables as one module with its enum translator
sql¶
- /data/sql takes a statement's values apart from its text, and binds them
- A statement sent without values is governed by the call it always was
sql-explorer¶
- A column of a result that reports no types is typed from its values
- "filters apply to the rows loaded" follows what the server said, not the editor's text
- A value checklist over part of a result says so and takes a value typed by hand
ui¶
- The table editor opens for a registrar who is not shown governance
- The Google Workspace setup, and the page a source sign-in returns to
- The table viewer binds every value and quotes every identifier through one function (#198)
- The source picker finds Google Workspace by gmail, mail and email, and its tile names Gmail
- The Google Workspace setup shows only what it reads
- Admin › Email holds the organisation's mail platforms beside the mail Provisa sends
- Admin › Email names Microsoft 365 and labels its tenant setting