<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Manage Dapr configuration on Dapr Docs</title><link>https://v1-18.docs.dapr.io/operations/configuration/</link><description>Recent content in Manage Dapr configuration on Dapr Docs</description><generator>Hugo</generator><language>en</language><atom:link href="https://v1-18.docs.dapr.io/operations/configuration/index.xml" rel="self" type="application/rss+xml"/><item><title>Dapr configuration</title><link>https://v1-18.docs.dapr.io/operations/configuration/configuration-overview/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://v1-18.docs.dapr.io/operations/configuration/configuration-overview/</guid><description>&lt;p>Dapr configurations are settings and policies that enable you to change both the behavior of individual Dapr applications, or the global behavior of the Dapr control plane system services.&lt;/p>
&lt;p>&lt;a href="https://v1-18.docs.dapr.io/concepts/configuration-concept/">for more information, read the configuration concept.&lt;/a>&lt;/p>
&lt;h2 id="application-configuration">Application configuration&lt;/h2>
&lt;h3 id="set-up-application-configuration">Set up application configuration&lt;/h3>
&lt;p>You can set up application configuration either in self-hosted or Kubernetes mode.&lt;/p>


 &lt;!-- Self hosted -->


 &lt;!-- Kubernetes -->


&lt;ul class="nav nav-tabs" id="tabs-1" role="tablist">
 &lt;li class="nav-item">
 &lt;button class="nav-link active"
 id="tabs-01-00-tab" data-bs-toggle="tab" data-bs-target="#tabs-01-00" role="tab"
 data-td-tp-persist="self-hosted" aria-controls="tabs-01-00" aria-selected="true">
 Self-hosted
 &lt;/button>
 &lt;/li>&lt;li class="nav-item">
 &lt;button class="nav-link"
 id="tabs-01-01-tab" data-bs-toggle="tab" data-bs-target="#tabs-01-01" role="tab"
 data-td-tp-persist="kubernetes" aria-controls="tabs-01-01" aria-selected="false">
 Kubernetes
 &lt;/button>
 &lt;/li>
&lt;/ul>

&lt;div class="tab-content" id="tabs-1-content">
 &lt;div class="tab-body tab-pane fade show active"
 id="tabs-01-00" role="tabpanel" aria-labelled-by="tabs-01-00-tab" tabindex="1">
 &lt;p>In self hosted mode, the Dapr configuration is a &lt;a href="https://v1-18.docs.dapr.io/reference/resource-specs/configuration-schema/">configuration file&lt;/a> - for example, &lt;code>config.yaml&lt;/code>. By default, the Dapr sidecar looks in the default Dapr folder for the runtime configuration:&lt;/p></description></item><item><title>How-To: Control concurrency and rate limit applications</title><link>https://v1-18.docs.dapr.io/operations/configuration/control-concurrency/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://v1-18.docs.dapr.io/operations/configuration/control-concurrency/</guid><description>&lt;p>Typically, in distributed computing, you may only want to allow for a given number of requests to execute concurrently. Using Dapr&amp;rsquo;s &lt;code>app-max-concurrency&lt;/code>, you can control how many requests and events can invoke your application simultaneously.&lt;/p>
&lt;p>Default &lt;code>app-max-concurreny&lt;/code> is set to &lt;code>-1&lt;/code>, meaning no concurrency limit is enforced.&lt;/p>
&lt;h2 id="different-approaches">Different approaches&lt;/h2>
&lt;p>While this guide focuses on &lt;code>app-max-concurrency&lt;/code>, you can also limit request rate per second using the &lt;strong>&lt;code>middleware.http.ratelimit&lt;/code>&lt;/strong> middleware. However, it&amp;rsquo;s important to understand the difference between the two approaches:&lt;/p></description></item><item><title>How-To: Limit the secrets that can be read from secret stores</title><link>https://v1-18.docs.dapr.io/operations/configuration/secret-scope/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://v1-18.docs.dapr.io/operations/configuration/secret-scope/</guid><description>&lt;p>In addition to &lt;a href="https://v1-18.docs.dapr.io/operations/components/component-scopes/">scoping which applications can access a given component&lt;/a>, you can also scope a named secret store component to one or more secrets for an application. By defining &lt;code>allowedSecrets&lt;/code> and/or &lt;code>deniedSecrets&lt;/code> lists, you restrict applications to access only specific secrets.&lt;/p>
&lt;p>For more information about configuring a Configuration resource:&lt;/p>
&lt;ul>
&lt;li>&lt;a href="https://v1-18.docs.dapr.io/operations/configuration/configuration-overview/">Configuration overview&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://v1-18.docs.dapr.io/reference/resource-specs/configuration-schema/">Configuration schema&lt;/a>&lt;/li>
&lt;/ul>
&lt;h2 id="configure-secrets-access">Configure secrets access&lt;/h2>
&lt;p>The &lt;code>secrets&lt;/code> section under the &lt;code>Configuration&lt;/code> spec contains the following properties:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-yml" data-lang="yml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#204a87;font-weight:bold">secrets&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#204a87;font-weight:bold">scopes&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>- &lt;span style="color:#204a87;font-weight:bold">storeName&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#000">kubernetes&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#204a87;font-weight:bold">defaultAccess&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#000">allow&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#204a87;font-weight:bold">allowedSecrets&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#000;font-weight:bold">[&lt;/span>&lt;span style="color:#4e9a06">&amp;#34;redis-password&amp;#34;&lt;/span>&lt;span style="color:#000;font-weight:bold">]&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>- &lt;span style="color:#204a87;font-weight:bold">storeName&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#000">localstore&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#204a87;font-weight:bold">defaultAccess&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#000">allow&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#204a87;font-weight:bold">deniedSecrets&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#000;font-weight:bold">[&lt;/span>&lt;span style="color:#4e9a06">&amp;#34;redis-password&amp;#34;&lt;/span>&lt;span style="color:#000;font-weight:bold">]&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>The following table lists the properties for secret scopes:&lt;/p></description></item><item><title>How-To: Apply access control list configuration for service invocation</title><link>https://v1-18.docs.dapr.io/operations/configuration/invoke-allowlist/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://v1-18.docs.dapr.io/operations/configuration/invoke-allowlist/</guid><description>&lt;p>Using access control, you can configure policies that restrict what the operations &lt;em>calling&lt;/em> applications can perform, via service invocation, on the &lt;em>called&lt;/em> application. You can define an access control policy specification in the Configuration schema to limit access:&lt;/p>
&lt;ul>
&lt;li>To a called application from specific operations, and&lt;/li>
&lt;li>To HTTP verbs from the calling applications.&lt;/li>
&lt;/ul>
&lt;p>An access control policy is specified in Configuration and applied to the Dapr sidecar for the &lt;em>called&lt;/em> application. Access to the called app is based on the matched policy action.&lt;/p></description></item><item><title>How-To: Selectively enable Dapr APIs on the Dapr sidecar</title><link>https://v1-18.docs.dapr.io/operations/configuration/api-allowlist/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://v1-18.docs.dapr.io/operations/configuration/api-allowlist/</guid><description>&lt;p>In scenarios such as zero trust networks or when exposing the Dapr sidecar to external traffic through a frontend, it&amp;rsquo;s recommended to only enable the Dapr sidecar APIs being used by the app. Doing so reduces the attack surface and helps keep the Dapr APIs scoped to the actual needs of the application.&lt;/p>
&lt;p>Dapr allows you to control which APIs are accessible to the application by setting an API allowlist or denylist using a &lt;a href="https://v1-18.docs.dapr.io/reference/resource-specs/configuration-schema/">Dapr Configuration&lt;/a>.&lt;/p></description></item><item><title>How-To: Configure Dapr to use gRPC</title><link>https://v1-18.docs.dapr.io/operations/configuration/grpc/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://v1-18.docs.dapr.io/operations/configuration/grpc/</guid><description>&lt;p>Dapr implements both an HTTP and a gRPC API for local calls. gRPC is useful for low-latency, high performance scenarios and has language integration using the proto clients. &lt;a href="https://v1-18.docs.dapr.io/developing-applications/sdks/">You can see the full list of auto-generated clients (Dapr SDKs)&lt;/a>.&lt;/p>
&lt;p>The Dapr runtime implements a &lt;a href="https://github.com/dapr/dapr/blob/master/dapr/proto/runtime/v1/dapr.proto">proto service&lt;/a> that apps can communicate with via gRPC.&lt;/p>
&lt;p>Not only can you call Dapr via gRPC, Dapr can communicate with an application via gRPC. To do that, the app needs to host a gRPC server and implement the &lt;a href="https://github.com/dapr/dapr/blob/master/dapr/proto/runtime/v1/appcallback.proto">Dapr &lt;code>appcallback&lt;/code> service&lt;/a>&lt;/p></description></item><item><title>How-To: Handle large HTTP header size</title><link>https://v1-18.docs.dapr.io/operations/configuration/increase-read-buffer-size/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://v1-18.docs.dapr.io/operations/configuration/increase-read-buffer-size/</guid><description>&lt;p>Dapr has a default limit of 4KB for the HTTP header read buffer size. If you&amp;rsquo;re sending HTTP headers larger than the default 4KB, you may encounter a &lt;code>Too big request header&lt;/code> service invocation error.&lt;/p>
&lt;p>You can increase the HTTP header size by using:&lt;/p>
&lt;ul>
&lt;li>The &lt;code>dapr.io/http-read-buffer-size&lt;/code> annotation, or&lt;/li>
&lt;li>The &lt;code>--dapr-http-read-buffer-size&lt;/code> flag when using the CLI.&lt;/li>
&lt;/ul>


&lt;!--Self-hosted-->


&lt;!--Kubernetes-->


&lt;ul class="nav nav-tabs" id="tabs-0" role="tablist">
 &lt;li class="nav-item">
 &lt;button class="nav-link active"
 id="tabs-00-00-tab" data-bs-toggle="tab" data-bs-target="#tabs-00-00" role="tab"
 data-td-tp-persist="self-hosted" aria-controls="tabs-00-00" aria-selected="true">
 Self-hosted
 &lt;/button>
 &lt;/li>&lt;li class="nav-item">
 &lt;button class="nav-link"
 id="tabs-00-01-tab" data-bs-toggle="tab" data-bs-target="#tabs-00-01" role="tab"
 data-td-tp-persist="kubernetes" aria-controls="tabs-00-01" aria-selected="false">
 Kubernetes
 &lt;/button>
 &lt;/li>
&lt;/ul>

&lt;div class="tab-content" id="tabs-0-content">
 &lt;div class="tab-body tab-pane fade show active"
 id="tabs-00-00" role="tabpanel" aria-labelled-by="tabs-00-00-tab" tabindex="0">
 &lt;p>When running in self-hosted mode, use the &lt;code>--dapr-http-read-buffer-size&lt;/code> flag to configure Dapr to use non-default http header size:&lt;/p></description></item><item><title>How-To: Handle larger body requests</title><link>https://v1-18.docs.dapr.io/operations/configuration/increase-request-size/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://v1-18.docs.dapr.io/operations/configuration/increase-request-size/</guid><description>&lt;div class="alert alert-primary" role="alert">
&lt;h4 class="alert-heading">Note&lt;/h4>

 The existing flag/annotation&lt;code>dapr-http-max-request-size&lt;/code> has been deprecated and updated to &lt;code>max-body-size&lt;/code>.

&lt;/div>

&lt;p>By default, Dapr has a limit for the request body size, set to 4MB. You can change this for both HTTP and gRPC requests by defining:&lt;/p>
&lt;ul>
&lt;li>The &lt;code>dapr.io/max-body-size&lt;/code> annotation, or&lt;/li>
&lt;li>The &lt;code>--max-body-size&lt;/code> flag.&lt;/li>
&lt;/ul>


&lt;!--self hosted-->


&lt;!--kubernetes-->


&lt;ul class="nav nav-tabs" id="tabs-1" role="tablist">
 &lt;li class="nav-item">
 &lt;button class="nav-link active"
 id="tabs-01-00-tab" data-bs-toggle="tab" data-bs-target="#tabs-01-00" role="tab"
 data-td-tp-persist="self-hosted" aria-controls="tabs-01-00" aria-selected="true">
 Self-hosted
 &lt;/button>
 &lt;/li>&lt;li class="nav-item">
 &lt;button class="nav-link"
 id="tabs-01-01-tab" data-bs-toggle="tab" data-bs-target="#tabs-01-01" role="tab"
 data-td-tp-persist="kubernetes" aria-controls="tabs-01-01" aria-selected="false">
 Kubernetes
 &lt;/button>
 &lt;/li>
&lt;/ul>

&lt;div class="tab-content" id="tabs-1-content">
 &lt;div class="tab-body tab-pane fade show active"
 id="tabs-01-00" role="tabpanel" aria-labelled-by="tabs-01-00-tab" tabindex="1">
 &lt;p>When running in self-hosted mode, use the &lt;code>--max-body-size&lt;/code> flag to configure Dapr to use non-default request body size:&lt;/p></description></item><item><title>How-To: Install certificates in the Dapr sidecar</title><link>https://v1-18.docs.dapr.io/operations/configuration/install-certificates/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://v1-18.docs.dapr.io/operations/configuration/install-certificates/</guid><description>&lt;p>The Dapr sidecar can be configured to trust certificates for communicating with external services. This is useful in scenarios where a self-signed certificate needs to be trusted, such as:&lt;/p>
&lt;ul>
&lt;li>Using an HTTP binding&lt;/li>
&lt;li>Configuring an outbound proxy for the sidecar&lt;/li>
&lt;/ul>
&lt;p>Both certificate authority (CA) certificates and leaf certificates are supported.&lt;/p>


&lt;!--self-hosted-->


&lt;!--kubernetes-->


&lt;ul class="nav nav-tabs" id="tabs-0" role="tablist">
 &lt;li class="nav-item">
 &lt;button class="nav-link active"
 id="tabs-00-00-tab" data-bs-toggle="tab" data-bs-target="#tabs-00-00" role="tab"
 data-td-tp-persist="self-hosted" aria-controls="tabs-00-00" aria-selected="true">
 Self-hosted
 &lt;/button>
 &lt;/li>&lt;li class="nav-item">
 &lt;button class="nav-link"
 id="tabs-00-01-tab" data-bs-toggle="tab" data-bs-target="#tabs-00-01" role="tab"
 data-td-tp-persist="kubernetes" aria-controls="tabs-00-01" aria-selected="false">
 Kubernetes
 &lt;/button>
 &lt;/li>
&lt;/ul>

&lt;div class="tab-content" id="tabs-0-content">
 &lt;div class="tab-body tab-pane fade show active"
 id="tabs-00-00" role="tabpanel" aria-labelled-by="tabs-00-00-tab" tabindex="0">
 &lt;p>You can make the following configurations when the sidecar is running as a container.&lt;/p></description></item><item><title>How-To: Enable preview features</title><link>https://v1-18.docs.dapr.io/operations/configuration/preview-features/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://v1-18.docs.dapr.io/operations/configuration/preview-features/</guid><description>&lt;p>&lt;a href="https://v1-18.docs.dapr.io/operations/support/support-preview-features/">Preview features&lt;/a> in Dapr are considered experimental when they are first released. These preview features require you to explicitly opt-in to use them. You specify this opt-in in Dapr&amp;rsquo;s Configuration file.&lt;/p>
&lt;p>Preview features are enabled on a per application basis by setting configuration when running an application instance.&lt;/p>
&lt;h2 id="configuration-properties">Configuration properties&lt;/h2>
&lt;p>The &lt;code>features&lt;/code> section under the &lt;code>Configuration&lt;/code> spec contains the following properties:&lt;/p>
&lt;table>
 &lt;thead>
 &lt;tr>
 &lt;th>Property&lt;/th>
 &lt;th>Type&lt;/th>
 &lt;th>Description&lt;/th>
 &lt;/tr>
 &lt;/thead>
 &lt;tbody>
 &lt;tr>
 &lt;td>&lt;code>name&lt;/code>&lt;/td>
 &lt;td>string&lt;/td>
 &lt;td>The name of the preview feature that is enabled/disabled&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;code>enabled&lt;/code>&lt;/td>
 &lt;td>bool&lt;/td>
 &lt;td>Boolean specifying if the feature is enabled or disabled&lt;/td>
 &lt;/tr>
 &lt;/tbody>
&lt;/table>
&lt;h2 id="enabling-a-preview-feature">Enabling a preview feature&lt;/h2>
&lt;p>Preview features are specified in the configuration. Here is an example of a full configuration that contains multiple features:&lt;/p></description></item><item><title>How-To: Configure Environment Variables from Secrets for Dapr sidecar</title><link>https://v1-18.docs.dapr.io/operations/configuration/environment-variables-secrets/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://v1-18.docs.dapr.io/operations/configuration/environment-variables-secrets/</guid><description>&lt;p>In special cases, the Dapr sidecar needs an environment variable injected into it. This use case may be required by a component, a 3rd party library, or a module that uses environment variables to configure the said component or customize its behavior. This can be useful for both production and non-production environments.&lt;/p>
&lt;h2 id="overview">Overview&lt;/h2>
&lt;p>In Dapr 1.15, the new &lt;code>dapr.io/env-from-secret&lt;/code> annotation was introduced, &lt;a href="https://v1-18.docs.dapr.io/reference/arguments-annotations-overview/">similar to &lt;code>dapr.io/env&lt;/code>&lt;/a>.
With this annotation, you can inject an environment variable into the Dapr sidecar, with a value from a secret.&lt;/p></description></item><item><title>How-To: Add custom annotations to the Dapr sidecar service</title><link>https://v1-18.docs.dapr.io/operations/configuration/sidecar-service-annotations/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://v1-18.docs.dapr.io/operations/configuration/sidecar-service-annotations/</guid><description>&lt;p>The Dapr operator automatically creates a Service (named with the &lt;code>-dapr&lt;/code> suffix) for the Dapr sidecar when running in Kubernetes. In some cases, you may need to add custom annotations to this service, for example to support specific network policies (such as Illumio) or metrics scraping configurations.&lt;/p>
&lt;h2 id="overview">Overview&lt;/h2>
&lt;p>The &lt;code>dapr.io/sidecar-svc-annotations&lt;/code> annotation allows you to specify a comma-separated list of &lt;code>key=value&lt;/code> pairs that will be added as annotations to the Dapr sidecar service.&lt;/p></description></item></channel></rss>