From 7b422ad67eeaed85cb29f2e89c56932a25b4e66b Mon Sep 17 00:00:00 2001 From: Nemanja Malocic Date: Fri, 18 Jul 2025 21:35:21 +0200 Subject: [PATCH] Add ravendb state store docs Signed-off-by: Nemanja Malocic --- .../supported-state-stores/setup-ravendb.md | 63 +++++++++++++++++++ .../data/components/state_stores/generic.yaml | 11 ++++ 2 files changed, 74 insertions(+) create mode 100644 daprdocs/content/en/reference/components-reference/supported-state-stores/setup-ravendb.md diff --git a/daprdocs/content/en/reference/components-reference/supported-state-stores/setup-ravendb.md b/daprdocs/content/en/reference/components-reference/supported-state-stores/setup-ravendb.md new file mode 100644 index 00000000000..95ad5b669bc --- /dev/null +++ b/daprdocs/content/en/reference/components-reference/supported-state-stores/setup-ravendb.md @@ -0,0 +1,63 @@ +--- +type: docs +title: "RavenDB" +linkTitle: "RavenDB" +description: Detailed information on the RavenDB state store component +aliases: + - "/operations/components/setup-state-store/supported-state-stores/setup-ravendb/" +--- + +## Component format + +To setup RavenDB state store create a component of type `state.ravendb`. See [this guide]({{< ref "howto-get-save-state.md#step-1-setup-a-state-store" >}}) on how to create and apply a state store configuration. + + +```yaml +apiVersion: dapr.io/v1alpha1 +kind: Component +metadata: + name: +spec: + type: state.ravendb + version: v1 + metadata: + - name: serverURL + value: #Required Example: "server.example.com" + - name: databaseName + value: # Optional. default: "daprStore" + - name: certPath + value: # Required unless server is insecure. + - name: KeyPath + value: # Required unless server is insecure. + - name: EnableTTL + value: # Optional. default: "true" + - name: TTLFrequency + value: # Optional. Example: "15". Default: "60" +``` + +{{% alert title="Warning" color="warning" %}} +The above example uses secrets as plain strings. It is recommended to use a secret store for the secrets as described [here]({{< ref component-secrets.md >}}). +{{% /alert %}} + +## Spec metadata fields + +| Field | Required | Details | Example | +|--------------------|:--------:|---------|---------| +| databaseName | N | The name of the database to use. Defaults to `"daprStore"` | `"daprStore"` +| serverURL | Y | Url to RavenDB instance | `"http://localhost:8080"` +| certPath | N1 | Path to certificate file | `"/path/to/client.certificate.crt"` +| keyPath | N1 | Path to key file | `"/path/to/certificate.key"` +| EnableTTL | N | Boolean value to enable TTL capability. Defaults to `"true"` | `"true"` +| TTLFrequency | N | Additional parameters to use | `"5s"` + +> [1] The `certPath` and `keyPath` fields are not mandatory if server url is `http`. However if the server url is `https` and no certPath and keyPath is present, then Dapr returns an error. + +### TTLs and cleanups + +This state store supports [Time-To-Live (TTL)]({{< ref state-store-ttl.md >}}) for records stored with Dapr. When storing data using Dapr, you can set the `ttlInSeconds` metadata property to indicate when the data should be considered "expired". + +## Related links + +- [Basic schema for a Dapr component]({{< ref component-schema >}}) +- Read [this guide]({{< ref "howto-get-save-state.md#step-2-save-and-retrieve-a-single-state" >}}) for instructions on configuring state store components +- [State management building block]({{< ref state-management >}}) \ No newline at end of file diff --git a/daprdocs/data/components/state_stores/generic.yaml b/daprdocs/data/components/state_stores/generic.yaml index ee5ca782c2f..2d467181e8b 100644 --- a/daprdocs/data/components/state_stores/generic.yaml +++ b/daprdocs/data/components/state_stores/generic.yaml @@ -207,3 +207,14 @@ etag: true ttl: false query: false +- component: RavenDB + link: setup-ravendb + state: Stable + version: v1 + since: "1.16" + features: + crud: true + transactions: true + etag: true + ttl: true + query: false \ No newline at end of file