import type { Protocol } from './protocol'; /** * Proxy settings for connecting to an on-premise destination via connectivity proxy or web proxies. * The ProxyConfiguration is `undefined` in most cases. The logic for setting it is as follows: * - If the destination has proxy type "OnPremise" the connectivity service proxy is used. * - Depending on the protocol in the destination URL the proxy environment variables `http_proxy` and `https_proxy` are considered. * * Valid form for the variable is `http://user:password@host:port` where everything besides the host is optional. * For user and password non alphanumeric characters need to be percent-encoded. * Note: The [no_proxy] environment variables contains a list of URLs for which no proxy will be used even if [http_proxy, https_proxy] are set. * Wildcards like *.some.domain.com are not supported while checking the no_proxy env. */ export interface ProxyConfiguration extends BasicProxyConfiguration { /** * HTTP headers to be added to a request if tunneled through the proxy. */ headers?: ProxyConfigurationHeaders; /** * A JWT for proxy authorization, which is used when HTTP headers are not applicable, e.g., using socket protocols. */ 'proxy-authorization'?: string; } /** * Standard proxy configuration without additional headers nor authorization info. */ export interface BasicProxyConfiguration { /** * The host of the proxy. */ host: string; /** * The port of the proxy. */ port: number; /** * The protocol used by the proxy. */ protocol: Protocol; } /** * Represents the request headers when using a proxy like the connectivity proxy to reach On-Premise systems. */ export interface ProxyConfigurationHeaders { [header: string]: string | undefined; /** * `Proxy-Authorization` header sent to the proxy. */ 'Proxy-Authorization': string; /** * `SAP-Connectivity-Authentication` header sent via the proxy to the target system containing the propagated user. */ 'SAP-Connectivity-Authentication'?: string; }