dapr / js-sdk

Dapr SDK for Javascript
Apache License 2.0
197 stars 82 forks source link

Support DAPR_HTTP_ENDPOINT and/or DAPR_GRPC_ENDPOINT #502

Closed artursouza closed 11 months ago

artursouza commented 1 year ago

Describe the proposal

Allow consistent way to configure endpoint for Dapr's sidecar, while enabling remote sidecar configuration.

Child of https://github.com/dapr/dapr/issues/6035

SDK should parse these in a consistent way, so operators have a consistent environment variable to set for Dapr apps. Right now, each SDK has their own way of configuring the endpoint for Dapr's sidecar.

If SDK allows gRPC communication from SDK to sidecar, then DAPR_GRPC_ENDPOINT must be supported. If SDK allows HTTP communication from SDK to sidecar, then DAPR_HTTP_ENDPOINT must be supported. DAPR_HTTP_ENDPOINT and DAPR_GRPC_ENDPOINT and not exclusive, meaning it is acceptable to support both, like in the Java SDK, if the SDK supports both protocols. Also, companies might decide to offer different endpoints per protocol, so there is not an unique environment variable for both.

shubham1172 commented 1 year ago

Copying from the parent issue"

FYI the JavaScript SDK already has this configuration embedded into the API. For instance, one could do

const daprHost = "127.0.0.1"; // Dapr Sidecar Host, could also be https://example.com
const daprPort = "3500"; // Dapr Sidecar Port of this Example Server
// HTTP Example
const client = new DaprClient({ daprHost, daprPort });

Having extra environment variables is not required, but it can be there and the API options can take precedence over env var.

These new environment variables can exist in JS-SDK, and daprHost/daprPort will take precedence.

elena-kolevska commented 1 year ago

/assign