Filling in the connection form
The fields below appear in the order the form asks for them.Connection Name
Any label you will recognise later, for exampleProduction Trino. It has no effect on the connection.
Coordinator Host
The hostname of your Trino coordinator — the node that accepts client queries. Not a worker, and not a load balancer that fronts workers.Port
443 for a TLS-terminated coordinator, which is the normal production setup and the default here. Clusters behind a proxy sometimes publish a different port; use whatever your Trino URL uses.
ClarityQ always connects over HTTPS.
Default Catalog (optional)
How wide ClarityQ looks:- Empty — every catalog on the cluster is discovered. Start here.
- Set — discovery is confined to that catalog.
system, jmx, tpch and tpcds are skipped either way, and stay queryable by full name.
User
The username ClarityQ authenticates as. Trino attributes every query to it, so it is the name that appears in your cluster’s query history and the identity your access-control rules apply to. A dedicated service account is recommended; it needs read access only, and the grants are listed further down this page.Authentication
Pick whichever your coordinator uses:- Password — for clusters using LDAP or a password file. Paste the service account’s password.
- Access Token — a JWT issued by the OAuth2/OIDC provider protecting your coordinator (Keycloak and similar). Paste a token for the service account; a long-lived one avoids re-entering it.
Run queries as the asking user (per-user permissions)
Leave this off and every query runs as the service account above: your cluster sees one identity, and ClarityQ’s own permissions decide what people can reach. Turn it on and ClarityQ instead runs each query as the person asking it. Your access-control layer — Ranger, OPA, Immuta or Trino’s file-based rules — then applies that user’s grants, row filters and column masks. Your cluster’s query history also records the real asker rather than the service account, so your audit trail stays meaningful. Two people asking the same question can legitimately get different rows, and someone without access to a table gets a permission error. It requires two things on your side:- The service account must be allowed to act as your end users (an
impersonationrule in file-based access control, or the equivalent in Starburst and Ranger). - Your cluster must authorise those users under the name ClarityQ sends, which is the user’s full ClarityQ email address —
dana@yourcompany.com, notdana. Either write your rules against the email, or map it to your internal username in your identity provider.
What to grant the service account
Through your access-control layer, the account needs:SELECTon every table ClarityQ should analyze- Read access to
information_schemain every catalog you want discovered — that is how ClarityQ finds tables - Permission to cancel its own queries, so aborting a question stops the work on your cluster instead of leaving it running
- An
impersonationrule, only if you enable per-user permissions
Network access
Allow inbound connections to the coordinator from ClarityQ:- 44.218.213.75
- 54.161.37.107
- 54.208.212.67
Connection parameters reference
How ClarityQ uses the connection
- Table discovery reads
information_schema— in the catalog you named, or in each catalog returned bySHOW CATALOGSwhen you named none. A catalog that cannot be read is skipped rather than failing discovery, so one misconfigured connector does not hide the rest. - A cluster-wide scan is time-boxed. On a cluster with very many catalogs it can stop early, and the catalogs it did not reach are named in ClarityQ’s logs; naming a catalog on the connection avoids the scan entirely.
- Partition detection probes the connector’s
"<table>$partitions"metadata table, so date-partitioned Hive, Iceberg and Delta tables get partition-pruned filters automatically. Tables partitioned by separateyear/month/daycolumns are recognised as partitioned but are not date-filtered, since no single column identifies a date. - Row counts and table sizes come from
SHOW STATS; runningANALYZE <table>on important tables improves them. - Nested
ROWandARRAY(ROW(...))columns are expanded, so event-parameter style columns are described in the catalog. - Cancellation calls
DELETE /v1/query/{id}, which your cluster authorises as killing a query the account owns. If that is not permitted, ClarityQ falls back toCALL system.runtime.kill_query, which needs permission to execute that procedure. Either one is enough.