Connection contract
x-tenant-slug is accepted as an alias for the historical x-tenant protocol
key. Continue to call the product scope a Workspace in prose; do not rename the
wire key.
Authentication happens through bearer metadata. The Flight Handshake RPC is
not supported, so clients must send authorization metadata on calls rather than
depending on the handshake flow.
Who runs your query
The Workspace API resolves your bearer to a person and forwards that identity to Query Layer asx-user-id and x-session-id, signed with the Workspace
API’s own short-lived service token. Your bearer never leaves the Workspace
API. Every read of a Provider table is evaluated for that person’s Policies,
so a query that reaches Query Layer with no person attached is refused with
UNAUTHENTICATED and error code QL-TN-006 (Source access requires a verified principal) rather than served unfiltered.
Only first-party services connect to Query Layer directly, and each presents a
service token bound to its own identity on the x-parable-service-token
metadata key. A direct connection that forwards x-user-id without a valid
Workspace API token is refused with UNAUTHENTICATED (QL-TN-003); a token
bound to another service is refused with PERMISSION_DENIED (QL-TN-004).
The scheduled-query runner (query-runner) is the one caller with a rollout
exception. Its two actions, parable.plan_query.v1 and
parable.publish_catalog.v1, are bound to a query-runner token, and a token
bound to any other service is refused on them. While the Query Layer’s
QUERY_LAYER_QUERY_RUNNER_TOKEN_REQUIRED switch is off (its default) those two
actions are also admitted with no token at all, each such call logging a
warning that names the action, so the runner and the Query Layer can deploy in
either order. With the switch on, an anonymous runner action is
UNAUTHENTICATED (QL-TN-003) like every other anonymous bound action. The
Query Layer runbook has the
flip procedure.
SQL access and its endpoint are provisioned per Workspace. Contact your
Parable representative when a Workspace does not have access yet.
Connect with ADBC
Request lifecycle
For a statement query:GetFlightInfovalidates and plans the SQL, then returns an opaque ticket.DoGetexecutes from that ticket and streams Arrow record batches.- The client releases the result stream when it has consumed or abandoned it.
Metadata discovery
Flight SQL supports catalog, schema, table, table-type, SQL capability, and logical key discovery.GetTables can include an Arrow IPC schema for every
matching table, including optional Parable semantic metadata.
Discover tables and columns
shows how to use those operations.
Errors and retries
Unsupported commands return gRPCUNIMPLEMENTED. Invalid authentication and
Workspace selection return gRPC authentication, permission, or argument
statuses rather than HTTP JSON errors.
When query concurrency is saturated, Query Layer can return
RESOURCE_EXHAUSTED with Parable error code QL-IN-008. A client can retry a
read-only query with bounded exponential backoff. Do not retry invalid SQL,
authentication failures, or permission failures without changing the request.