Skip to content

Commit f283821

Browse files
authored
Merge branch 'v1.15' into sftp-binding-component-docs
2 parents a836d7d + 07b6aa8 commit f283821

35 files changed

+107
-41
lines changed

daprdocs/content/en/contributing/contributing-overview.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ See the [Dapr community repository](https://github.com/dapr/community) for more
1818

1919
1. **Docs**: This [repository](https://github.com/dapr/docs) contains the documentation for Dapr. You can contribute by updating existing documentation, fixing errors, or adding new content to improve user experience and clarity. Please see the specific guidelines for [docs contributions]({{< ref contributing-docs >}}).
2020

21-
2. **Quickstarts**: The Quickstarts [repository](https://github.com/dapr/quickstarts) provides simple, step-by-step guides to help users get started with Dapr quickly. Contributions in this repository involve creating new quickstarts, improving existing ones, or ensuring they stay up-to-date with the latest features.
21+
2. **Quickstarts**: The Quickstarts [repository](https://github.com/dapr/quickstarts) provides simple, step-by-step guides to help users get started with Dapr quickly. [Contributions in this repository](https://github.com/dapr/quickstarts/blob/master/CONTRIBUTING.md) involve creating new quickstarts, improving existing ones, or ensuring they stay up-to-date with the latest features.
2222

2323
3. **Runtime**: The Dapr runtime [repository](https://github.com/dapr/dapr) houses the core runtime components. Here, you can contribute by fixing bugs, optimizing performance, implementing new features, or enhancing existing ones.
2424

daprdocs/content/en/contributing/daprbot.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
type: docs
33
title: "Dapr bot reference"
44
linkTitle: "Dapr bot"
5-
weight: 15
5+
weight: 70
66
description: "List of Dapr bot capabilities."
77
---
88

daprdocs/content/en/contributing/docs-contrib/contributing-docs.md

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -41,15 +41,18 @@ Style and tone conventions should be followed throughout all Dapr documentation
4141

4242
## Diagrams and images
4343

44-
Diagrams and images are invaluable visual aids for documentation pages. Diagrams are kept in a [Dapr Diagrams Deck](https://github.com/dapr/docs/tree/v1.11/daprdocs/static/presentations), which includes guidance on style and icons.
44+
Diagrams and images are invaluable visual aids for documentation pages. Use the diagram style and icons in the [Dapr Diagrams template deck](https://github.com/dapr/docs/tree/v1.14/daprdocs/static/presentations).
4545

46-
As you create diagrams for your documentation:
46+
The process for creating diagrams for your documentation:
4747

48-
- Save them as high-res PNG files into the [images folder](https://github.com/dapr/docs/tree/v1.11/daprdocs/static/images).
49-
- Name your PNG files using the convention of a concept or building block so that they are grouped.
48+
1. Download the [Dapr Diagrams template deck](https://github.com/dapr/docs/tree/v1.14/daprdocs/static/presentations) to use the icons and colors.
49+
1. Add a new slide and create your diagram.
50+
1. Screen capture the diagram as high-res PNG file and save in the [images folder](https://github.com/dapr/docs/tree/v1.14/daprdocs/static/images).
51+
1. Name your PNG files using the convention of a concept or building block so that they are grouped.
5052
- For example: `service-invocation-overview.png`.
5153
- For more information on calling out images using shortcode, see the [Images guidance](#images) section below.
52-
- Add the diagram to the correct section in the `Dapr-Diagrams.pptx` deck so that they can be amended and updated during routine refresh.
54+
1. Add the diagram to the appropriate section in your documentation using the HTML `<image>` tag.
55+
1. In your PR, comment the diagram slide (not the screen capture) so it can be reviewed and added to the diagram deck by maintainers.
5356

5457
## Contributing a new docs page
5558

daprdocs/content/en/developing-applications/building-blocks/pubsub/subscription-methods.md

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -37,17 +37,16 @@ metadata:
3737
spec:
3838
topic: orders
3939
routes:
40-
default: /checkout
40+
default: /orders
4141
pubsubname: pubsub
4242
scopes:
4343
- orderprocessing
44-
- checkout
4544
```
4645
4746
Here the subscription called `order`:
4847
- Uses the pub/sub component called `pubsub` to subscribes to the topic called `orders`.
49-
- Sets the `route` field to send all topic messages to the `/checkout` endpoint in the app.
50-
- Sets `scopes` field to scope this subscription for access only by apps with IDs `orderprocessing` and `checkout`.
48+
- Sets the `route` field to send all topic messages to the `/orders` endpoint in the app.
49+
- Sets `scopes` field to scope this subscription for access only by apps with ID `orderprocessing`.
5150

5251
When running Dapr, set the YAML component file path to point Dapr to the component.
5352

@@ -113,7 +112,7 @@ In your application code, subscribe to the topic specified in the Dapr pub/sub c
113112

114113
```csharp
115114
//Subscribe to a topic
116-
[HttpPost("checkout")]
115+
[HttpPost("orders")]
117116
public void getCheckout([FromBody] int orderId)
118117
{
119118
Console.WriteLine("Subscriber received : " + orderId);
@@ -128,7 +127,7 @@ public void getCheckout([FromBody] int orderId)
128127
import io.dapr.client.domain.CloudEvent;
129128
130129
//Subscribe to a topic
131-
@PostMapping(path = "/checkout")
130+
@PostMapping(path = "/orders")
132131
public Mono<Void> getCheckout(@RequestBody(required = false) CloudEvent<String> cloudEvent) {
133132
return Mono.fromRunnable(() -> {
134133
try {
@@ -146,7 +145,7 @@ public Mono<Void> getCheckout(@RequestBody(required = false) CloudEvent<String>
146145
from cloudevents.sdk.event import v1
147146
148147
#Subscribe to a topic
149-
@app.route('/checkout', methods=['POST'])
148+
@app.route('/orders', methods=['POST'])
150149
def checkout(event: v1.Event) -> None:
151150
data = json.loads(event.Data())
152151
logging.info('Subscriber received: ' + str(data))
@@ -163,7 +162,7 @@ const app = express()
163162
app.use(bodyParser.json({ type: 'application/*+json' }));
164163
165164
// listen to the declarative route
166-
app.post('/checkout', (req, res) => {
165+
app.post('/orders', (req, res) => {
167166
console.log(req.body);
168167
res.sendStatus(200);
169168
});
@@ -178,7 +177,7 @@ app.post('/checkout', (req, res) => {
178177
var sub = &common.Subscription{
179178
PubsubName: "pubsub",
180179
Topic: "orders",
181-
Route: "/checkout",
180+
Route: "/orders",
182181
}
183182
184183
func eventHandler(ctx context.Context, e *common.TopicEvent) (retry bool, err error) {
@@ -191,7 +190,7 @@ func eventHandler(ctx context.Context, e *common.TopicEvent) (retry bool, err er
191190

192191
{{< /tabs >}}
193192

194-
The `/checkout` endpoint matches the `route` defined in the subscriptions and this is where Dapr sends all topic messages to.
193+
The `/orders` endpoint matches the `route` defined in the subscriptions and this is where Dapr sends all topic messages to.
195194

196195
### Streaming subscriptions
197196

@@ -325,7 +324,7 @@ In the example below, you define the values found in the [declarative YAML subsc
325324

326325
```csharp
327326
[Topic("pubsub", "orders")]
328-
[HttpPost("/checkout")]
327+
[HttpPost("/orders")]
329328
public async Task<ActionResult<Order>>Checkout(Order order, [FromServices] DaprClient daprClient)
330329
{
331330
// Logic
@@ -337,7 +336,7 @@ or
337336

338337
```csharp
339338
// Dapr subscription in [Topic] routes orders topic to this route
340-
app.MapPost("/checkout", [Topic("pubsub", "orders")] (Order order) => {
339+
app.MapPost("/orders", [Topic("pubsub", "orders")] (Order order) => {
341340
Console.WriteLine("Subscriber received : " + order);
342341
return Results.Ok(order);
343342
});
@@ -359,7 +358,7 @@ app.UseEndpoints(endpoints =>
359358
```java
360359
private static final ObjectMapper OBJECT_MAPPER = new ObjectMapper();
361360
362-
@Topic(name = "checkout", pubsubName = "pubsub")
361+
@Topic(name = "orders", pubsubName = "pubsub")
363362
@PostMapping(path = "/orders")
364363
public Mono<Void> handleMessage(@RequestBody(required = false) CloudEvent<String> cloudEvent) {
365364
return Mono.fromRunnable(() -> {
@@ -370,6 +369,7 @@ public Mono<Void> handleMessage(@RequestBody(required = false) CloudEvent<String
370369
throw new RuntimeException(e);
371370
}
372371
});
372+
}
373373
```
374374

375375
{{% /codetab %}}
@@ -382,7 +382,7 @@ def subscribe():
382382
subscriptions = [
383383
{
384384
'pubsubname': 'pubsub',
385-
'topic': 'checkout',
385+
'topic': 'orders',
386386
'routes': {
387387
'rules': [
388388
{
@@ -418,7 +418,7 @@ app.get('/dapr/subscribe', (req, res) => {
418418
res.json([
419419
{
420420
pubsubname: "pubsub",
421-
topic: "checkout",
421+
topic: "orders",
422422
routes: {
423423
rules: [
424424
{
@@ -480,7 +480,7 @@ func configureSubscribeHandler(w http.ResponseWriter, _ *http.Request) {
480480
t := []subscription{
481481
{
482482
PubsubName: "pubsub",
483-
Topic: "checkout",
483+
Topic: "orders",
484484
Routes: routes{
485485
Rules: []rule{
486486
{

daprdocs/content/en/developing-applications/building-blocks/state-management/howto-get-save-state.md

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,6 @@ State management is one of the most common needs of any new, legacy, monolith, o
1010

1111
In this guide, you'll learn the basics of using the key/value state API to allow an application to save, get, and delete state.
1212

13-
## Example
14-
1513
The code example below _loosely_ describes an application that processes orders with an order processing service which has a Dapr sidecar. The order processing service uses Dapr to store state in a Redis state store.
1614

1715
<img src="/images/building-block-state-management-example.png" width=1000 alt="Diagram showing state management of example service">
@@ -554,7 +552,7 @@ namespace EventService
554552
string DAPR_STORE_NAME = "statestore";
555553
//Using Dapr SDK to retrieve multiple states
556554
using var client = new DaprClientBuilder().Build();
557-
IReadOnlyList<BulkStateItem> mulitpleStateResult = await client.GetBulkStateAsync(DAPR_STORE_NAME, new List<string> { "order_1", "order_2" }, parallelism: 1);
555+
IReadOnlyList<BulkStateItem> multipleStateResult = await client.GetBulkStateAsync(DAPR_STORE_NAME, new List<string> { "order_1", "order_2" }, parallelism: 1);
558556
}
559557
}
560558
}

daprdocs/content/en/developing-applications/building-blocks/workflow/workflow-features-concepts.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -135,7 +135,7 @@ Because workflow retry policies are configured in code, the exact developer expe
135135
| --- | --- |
136136
| **Maximum number of attempts** | The maximum number of times to execute the activity or child workflow. |
137137
| **First retry interval** | The amount of time to wait before the first retry. |
138-
| **Backoff coefficient** | The amount of time to wait before each subsequent retry. |
138+
| **Backoff coefficient** | The coefficient used to determine the rate of increase of back-off. For example a coefficient of 2 doubles the wait of each subsequent retry. |
139139
| **Maximum retry interval** | The maximum amount of time to wait before each subsequent retry. |
140140
| **Retry timeout** | The overall timeout for retries, regardless of any configured max number of attempts. |
141141

daprdocs/content/en/getting-started/quickstarts/workflow-quickstart.md

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,10 @@ description: Get started with the Dapr Workflow building block
1010
Dapr Workflow is currently in beta. [See known limitations for {{% dapr-latest-version cli="true" %}}]({{< ref "workflow-overview.md#limitations" >}}).
1111
{{% /alert %}}
1212

13+
{{% alert title="Note" color="primary" %}}
14+
Redis is currently used as the state store component for Workflows in the Quickstarts. However, Redis does not support transaction rollbacks and should not be used in production as an actor state store.
15+
{{% /alert %}}
16+
1317
Let's take a look at the Dapr [Workflow building block]({{< ref workflow-overview.md >}}). In this Quickstart, you'll create a simple console application to demonstrate Dapr's workflow programming model and the workflow management APIs.
1418

1519
In this guide, you'll:
@@ -1356,4 +1360,4 @@ Join the discussion in our [discord channel](https://discord.com/channels/778680
13561360
- Walk through a more in-depth [.NET SDK example workflow](https://github.com/dapr/dotnet-sdk/tree/master/examples/Workflow)
13571361
- Learn more about [Workflow as a Dapr building block]({{< ref workflow-overview >}})
13581362
1359-
{{< button text="Explore Dapr tutorials >>" page="getting-started/tutorials/_index.md" >}}
1363+
{{< button text="Explore Dapr tutorials >>" page="getting-started/tutorials/_index.md" >}}

daprdocs/content/en/operations/configuration/secret-scope.md

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,15 @@ title: "How-To: Limit the secrets that can be read from secret stores"
44
linkTitle: "Limit secret store access"
55
weight: 3000
66
description: "Define secret scopes by augmenting the existing configuration resource with restrictive permissions."
7+
description: "Define secret scopes by augmenting the existing configuration resource with restrictive permissions."
78
---
89

10+
In addition to [scoping which applications can access a given component]({{< ref "component-scopes.md">}}), you can also scop a named secret store component to one or more secrets for an application. By defining `allowedSecrets` and/or `deniedSecrets` lists, you restrict applications to access only specific secrets.
911
In addition to [scoping which applications can access a given component]({{< ref "component-scopes.md">}}), you can also scop a named secret store component to one or more secrets for an application. By defining `allowedSecrets` and/or `deniedSecrets` lists, you restrict applications to access only specific secrets.
1012

13+
For more information about configuring a Configuration resource:
14+
- [Configuration overview]({{< ref configuration-overview.md >}})
15+
- [Configuration schema]({{< ref configuration-schema.md >}})
1116
For more information about configuring a Configuration resource:
1217
- [Configuration overview]({{< ref configuration-overview.md >}})
1318
- [Configuration schema]({{< ref configuration-schema.md >}})
@@ -55,8 +60,10 @@ The `allowedSecrets` and `deniedSecrets` list values take priority over the `def
5560

5661
### Scenario 1: Deny access to all secrets for a secret store
5762

63+
In a Kubernetes cluster, the native Kubernetes secret store is added to your Dapr application by default. In some scenarios, it may be necessary to deny access to Dapr secrets for a given application. To add this configuration:
5864
In a Kubernetes cluster, the native Kubernetes secret store is added to your Dapr application by default. In some scenarios, it may be necessary to deny access to Dapr secrets for a given application. To add this configuration:
5965

66+
1. Define the following `appconfig.yaml`.
6067
1. Define the following `appconfig.yaml`.
6168

6269
```yaml
@@ -70,7 +77,25 @@ In a Kubernetes cluster, the native Kubernetes secret store is added to your Dap
7077
- storeName: kubernetes
7178
defaultAccess: deny
7279
```
80+
```yaml
81+
apiVersion: dapr.io/v1alpha1
82+
kind: Configuration
83+
metadata:
84+
name: appconfig
85+
spec:
86+
secrets:
87+
scopes:
88+
- storeName: kubernetes
89+
defaultAccess: deny
90+
```
91+
92+
1. Apply it to the Kubernetes cluster using the following command:
93+
94+
```bash
95+
kubectl apply -f appconfig.yaml`.
96+
```
7397
98+
For applications that you need to deny access to the Kubernetes secret store, follow [the Kubernetes instructions]({{< ref kubernetes-overview >}}), adding the following annotation to the application pod.
7499
1. Apply it to the Kubernetes cluster using the following command:
75100
76101
```bash
@@ -85,6 +110,7 @@ dapr.io/config: appconfig
85110
86111
With this defined, the application no longer has access to Kubernetes secret store.
87112
113+
### Scenario 2: Allow access to only certain secrets in a secret store
88114
### Scenario 2: Allow access to only certain secrets in a secret store
89115
90116
To allow a Dapr application to have access to only certain secrets, define the following `config.yaml`:
@@ -102,6 +128,7 @@ spec:
102128
allowedSecrets: ["secret1", "secret2"]
103129
```
104130

131+
This example defines configuration for secret store named `vault`. The default access to the secret store is `deny`. Meanwhile, some secrets are accessible by the application based on the `allowedSecrets` list. Follow [the Sidecar configuration instructions]({{< ref "configuration-overview.md#sidecar-configuration" >}}) to apply configuration to the sidecar.
105132
This example defines configuration for secret store named `vault`. The default access to the secret store is `deny`. Meanwhile, some secrets are accessible by the application based on the `allowedSecrets` list. Follow [the Sidecar configuration instructions]({{< ref "configuration-overview.md#sidecar-configuration" >}}) to apply configuration to the sidecar.
106133

107134
### Scenario 3: Deny access to certain sensitive secrets in a secret store
@@ -126,3 +153,8 @@ This configuration explicitly denies access to `secret1` and `secret2` from the
126153
## Next steps
127154

128155
{{< button text="Service invocation access control" page="invoke-allowlist" >}}
156+
This configuration explicitly denies access to `secret1` and `secret2` from the secret store named `vault,` while allowing access to all other secrets. Follow [the Sidecar configuration instructions]({{< ref "configuration-overview.md#sidecar-configuration" >}}) to apply configuration to the sidecar.
157+
158+
## Next steps
159+
160+
{{< button text="Service invocation access control" page="invoke-allowlist" >}}

0 commit comments

Comments
 (0)