JSON Connection Configuration Document

Core+ clients connect to the Deephaven authentication server, Persistent Query controller, and the underlying query workers. To initiate communications with the Deephaven server, the clients first download a connection.json file from the Web API service. Typically, for clusters without Envoy, the URL is of the form https://deephaven-infra-host.example.com:8123/iris/connection.json, or, for clusters with Envoy, https://deephaven-infra-host.example.com:8000/iris/connection.json.

An example JSON document for an Envoy cluster is:

{
  "auth_host": ["deephaven-infra-host.example.com"],
  "auth_port": 8000,
  "controller_port": 8000,
  "controller_host": "deephaven-infra-host.example.com",
  "truststore_url": "https://deephaven-infra-host.example.com:8000/iris//resources/truststore-iris.pem",
  "override_authorities": false,
  "acl_write_server": "https://deephaven-infra-host.example.com:8000/acl/",
  "authentication_service_config": "{\n  \"methodConfig\": [\n    {\n      \"name\": [\n          {\n              \"service\": \"io.deephaven.proto.auth.grpc.AuthApi\"\n          }\n      ],\n\n      \"retryPolicy\": {\n        \"maxAttempts\": 60,\n        \"initialBackoff\": \"0.1s\",\n        \"maxBackoff\": \"2s\",\n        \"backoffMultiplier\": 2,\n        \"retryableStatusCodes\": [\n          \"UNAVAILABLE\"\n        ]\n      },\n\n      \"waitForReady\": true,\n      \"timeout\": \"60s\"\n    }\n  ]\n}\n",
  "controller_service_config": "{\n  \"methodConfig\": [\n    {\n      \"name\": [\n          {\n              \"service\": \"io.deephaven.proto.controoler.grpc.ControllerApi\"\n          }\n      ],\n\n      \"retryPolicy\": {\n        \"maxAttempts\": 60,\n        \"initialBackoff\": \"0.1s\",\n        \"maxBackoff\": \"10s\",\n        \"backoffMultiplier\": 2,\n        \"retryableStatusCodes\": [\n          \"UNAVAILABLE\"\n        ]\n      },\n\n      \"waitForReady\": true,\n      \"timeout\": \"60s\"\n    }\n  ]\n}\n"
}

A similar example of a cluster without Envoy is:

{
  "auth_host": ["deephaven-authentication-server.example.com"],
  "auth_port": 9031,
  "controller_port": 20126,
  "controller_host": "deephaven-controller.example.com",
  "truststore_url": "https://deephaven-infra-host.example.com:8443/iris/resources/truststore-iris.pem",
  "override_authorities": true,
  "controller_authority": "controller",
  "auth_authority": "authserver",
  "acl_write_server": "https://deephaven-infra-host.example.com:9044/acl/",
  "authentication_service_config": "{\n  \"methodConfig\": [\n    {\n      \"name\": [\n          {\n              \"service\": \"io.deephaven.proto.auth.grpc.AuthApi\"\n          }\n      ],\n\n      \"retryPolicy\": {\n        \"maxAttempts\": 60,\n        \"initialBackoff\": \"0.1s\",\n        \"maxBackoff\": \"2s\",\n        \"backoffMultiplier\": 2,\n        \"retryableStatusCodes\": [\n          \"UNAVAILABLE\"\n        ]\n      },\n\n      \"waitForReady\": true,\n      \"timeout\": \"60s\"\n    }\n  ]\n}\n",
  "controller_service_config": "{\n  \"methodConfig\": [\n    {\n      \"name\": [\n          {\n              \"service\": \"io.deephaven.proto.controoler.grpc.ControllerApi\"\n          }\n      ],\n\n      \"retryPolicy\": {\n        \"maxAttempts\": 60,\n        \"initialBackoff\": \"0.1s\",\n        \"maxBackoff\": \"10s\",\n        \"backoffMultiplier\": 2,\n        \"retryableStatusCodes\": [\n          \"UNAVAILABLE\"\n        ]\n      },\n\n      \"waitForReady\": true,\n      \"timeout\": \"60s\"\n    }\n  ]\n}\n"
}

See the table below for the definition of the field.

FieldTypeDescription
auth_hostString ArrayList of authentication servers.
auth_portIntegerPort of the authentication server.
controller_hostString ArrayHostname of the active Persistent Query controller.
controller_portIntegerPort of the Persistent Query controller.
truststore_urlStringURL for the trust store PEM file that contains the required certificates to connect to this Deephaven cluster.
override_authoritiesBooleanWhether or not the client should override the authority for the TLS connection to the authentication server and the controller. In Deephaven versions earlier than 1.20231218 (Vermilion+), if true, the hardcoded value "authserver" is used for the authority override. In 1.20240517 (Grizzly) and later, the authority override value is found in the auth_authority and controller_authority fields.
auth_authorityStringThe authority to use for TLS connections to the authentication server; only used if override_authorities is set. Python client support is available in Grizzly (1.20240517) or Vermilion+ after 1.20231218.397.
controller_authorityStringThe authority to use for TLS connections to the Persistent Query controller; only used if override_authorities is set. Python client support is available in Grizzly (1.20240517) or Vermilion+ after 1.20231218.397.
acl_write_serverStringThe ACL write server API URL.
saml_sso_uriStringThe value of the authentication.client.samlauth.login.url parameter.
authentication_service_configStringA string containing the JSON gRPC service configuration to use with the authentication server channel. The service configuration is necessary for the gRPC client to automatically retry on UNAVAILABLE errors. This value is only set and used by clients in 1.20240517 (Grizzly) or later.
controller_service_configStringA string containing the JSON gRPC service configuration to use with the controller channel. The service configuration is necessary for the gRPC client to automatically retry on UNAVAILABLE errors. This value is only set or used by clients in 1.20240517 (Grizzly) or later.