Client access
Everything that talks to Gravitino reaches it through one of a small set of endpoints, and engines reach it through a connector or a client library. The Client access tab under Configure in the UI gathers both in one place. Its heading reads "How engines and clients reach this server."
Quick start
-
Copy the endpoint the client needs. Engines using a Gravitino connector and applications using a client library point at the Gravitino API. Engines speaking the Iceberg REST protocol point at the Iceberg REST endpoint instead, without the
/v1/the UI shows (see Iceberg REST). -
Install the matching connector or client. Each has its own page with install and configuration steps.
-
Authenticate as the server expects. A client presents the same credentials as any other caller, so the server's authentication settings apply unchanged.
Endpoints
The Endpoints section has one row each for Gravitino API, Iceberg REST, Lance REST, and SCIM. Each row shows the address, a copy button when the address is known, and a Docs link.
| Endpoint | What uses it | Details |
|---|---|---|
| Gravitino API | The UI, the Gravitino connectors, the Java and Python clients, and direct REST calls. | Java client |
| Iceberg REST | Any engine with an Iceberg REST catalog client, with no Gravitino connector required. | Iceberg REST catalog service |
| Lance REST | Engines and libraries reading and writing Lance tables. | Lance REST service |
| SCIM | Identity providers pushing users and groups. | SCIM provisioning |
Where the addresses come from
The UI reads the Kubernetes Ingress or Istio Gateway of the installation and shows the external
hostnames published there. For each endpoint it picks the host whose name contains gravitino,
iceberg, lance, or scim. Gravitino API and SCIM fall back to the first host on the Ingress.
When nothing is found, Gravitino API shows a guessed address: the UI's own address with gravitino.
added in front of the hostname.
Not enabled and Address unknown
| Shown | Meaning |
|---|---|
| Not enabled | The service is not in gravitino.auxService.names, so the server does not run it. |
| Address unknown | The service runs, but no external address for it was published or the UI did not discover one. |
Iceberg REST and Lance REST are enabled by default. SCIM is enabled with gravitino.scim.enabled,
and the chart then adds scim to gravitino.auxService.names.
An enabled service is reachable inside the cluster, but has no external address until it is published on the Ingress. Iceberg REST, Lance REST and SCIM each take a dedicated hostname on the chart's Ingress.
ingress:
enabled: true
iceberg:
enabled: true
host: {iceberg_host}
tls:
- secretName: {iceberg_tls_secret}
hosts:
- {iceberg_host}
lance:
enabled: true
host: {lance_host}
tls:
- secretName: {lance_tls_secret}
hosts:
- {lance_host}
scim:
enabled: true
host: {scim_host}
tls:
- secretName: {scim_tls_secret}
hosts:
- {scim_host}
gravitino:
scim:
enabled: true
Iceberg REST
The UI shows the Iceberg REST address as https://{iceberg_host}/iceberg/v1/. Engines need
https://{iceberg_host}/iceberg, because the Iceberg client adds /v1 itself. See
Iceberg REST catalog service.
Iceberg REST serves one metalake only: the one set by
gravitino.icebergRest.dynamicConfigProvider.metalake, which is required when authorization is on.
See How clients reach a metalake.
SCIM
The SCIM row shows the host alone, without the /scim/v2 path an identity provider needs. Set up
the identity provider from the Identity provider tab under Configure, following
SCIM provisioning.
Connectors and clients
The Connectors section is a table with the columns Client, Version, and Download, plus a Docs link on each row. Version is the version the server runs.
| Client | Use it for | Download column | Details |
|---|---|---|---|
| Trino connector | Querying every catalog Gravitino manages from Trino. | A Download link to a com.datastrato Maven Central file | Trino connector |
| Spark connector | Reading and writing Gravitino catalogs from Spark. | A Download link to a com.datastrato Maven Central file | Spark connector |
| Flink connector | Reading and writing Gravitino catalogs from Flink. | A Download link to a com.datastrato Maven Central file | Flink connector |
| Python client | Managing metadata from Python. | pip install apache-gravitino==1.3.0, with a copy button | Python client |
| Java client | Managing metadata from Java. | org.apache.gravitino:client-java:1.3.0, with a copy button | Java client |
Install a connector or client by following its own page, which gives the artifacts to use. In this release the Java row names a coordinate that is not published at the server version, and the Python row installs 1.3.0, which has no view support; the Java client and Python client pages give the versions to install.