Skip to main content

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​

  1. 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).

  2. Install the matching connector or client. Each has its own page with install and configuration steps.

  3. 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.

EndpointWhat uses itDetails
Gravitino APIThe UI, the Gravitino connectors, the Java and Python clients, and direct REST calls.Java client
Iceberg RESTAny engine with an Iceberg REST catalog client, with no Gravitino connector required.Iceberg REST catalog service
Lance RESTEngines and libraries reading and writing Lance tables.Lance REST service
SCIMIdentity 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​

ShownMeaning
Not enabledThe service is not in gravitino.auxService.names, so the server does not run it.
Address unknownThe 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.

my-values.yaml
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.

ClientUse it forDownload columnDetails
Trino connectorQuerying every catalog Gravitino manages from Trino.A Download link to a com.datastrato Maven Central fileTrino connector
Spark connectorReading and writing Gravitino catalogs from Spark.A Download link to a com.datastrato Maven Central fileSpark connector
Flink connectorReading and writing Gravitino catalogs from Flink.A Download link to a com.datastrato Maven Central fileFlink connector
Python clientManaging metadata from Python.pip install apache-gravitino==1.3.0, with a copy buttonPython client
Java clientManaging metadata from Java.org.apache.gravitino:client-java:1.3.0, with a copy buttonJava 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.