Module Tezos_rpc_http_server.RPC_middleware

This module provides middlewares that is used by the RPC servers to forward unsupported RPCs to a full node.

type forwarder_events = {
  1. on_forwarding : Cohttp.Request.t -> unit Lwt.t;
    (*

    Called right before an unsupported RPC gets forwarded to the node.

    *)
  2. on_locally_handled : Cohttp.Request.t -> unit Lwt.t;
    (*

    Called after an RPC has been handled by the server itself (without any forwarding).

    *)
}

Callbacks to add side-effects to proxy_server_query_forwarder, typically used to emit events.

type forwarder_resources
val init_forwarder : unit -> forwarder_resources
val forwarding_conn_closed : forwarder_resources -> ('a * Cohttp.Connection.t) -> unit
val proxy_server_query_forwarder : ?acl:RPC_server.Acl.t -> ?ctx:Cohttp_lwt_unix.Net.ctx -> ?forwarder_events:forwarder_events -> forwarder_resources -> Uri.t -> RPC_server.callback -> RPC_server.callback

A Resto middleware that transforms any callback to an other that rewrites queries that the proxy server cannot handle and forwards them to the full node at the given Uri.t. If acl parameter is provided, the forwarding happens only if the ACL rules are satisfied.

val rpc_metrics_transform_callback : update_metrics: (string -> string -> (unit -> Cohttp_lwt_unix.Server.response_action Lwt.t) -> Cohttp_lwt_unix.Server.response_action Lwt.t) -> unit Tezos_rpc.Directory.t -> RPC_server.callback -> RPC_server.callback

A Resto middleware that transforms any server callback to an other that handles RPC metrics

module Http_cache_headers : sig ... end

A Resto middleware that adds Http cache headers to responses of any block query. These headers can be used by Caches to invalidate responses. The supported headers are: * `max-age`: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Cache-Control#response_directives * `if-none-match`: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/If-None-Match