Proxy serviceΒΆ

The proxy service is an optional service that the Client can use to access any backend and the metadata service. This can be useful for:

  • Bypassing NATs and firewalls.

  • Performing SSL termination in a single point.

  • Simplifying the docker deployment procedure.

  • Adding fine-grain ACL mechanisms in client connections.

  • Adding other behaviors to the client connections, such as throttle, logging, etc.

The proxy service can be started with the following command:

$ python -m dataclay.proxy

The following environment variables must be defined:

  • DATACLAY_KV_HOST: The Redis service host.

  • DATACLAY_PROXY_MDS_HOST: The metadata service host.

See ProxyConfig for a comprehensive description of all the available configuration variables.

You can subclass the MiddlewareBase class to define a specific behavior of the proxy service. See the proxy_acl example for a more convoluted example of how to use the proxy service with custom middleware definitions.

The gRPC calls are the CamelCase version of the APIs methods detailed in BackendAPI and MetadataAPI.