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..8efd302e640 --- /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 server url is https and no certPath and keyPath is present 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 >}}) diff --git a/daprdocs/data/components/state_stores/generic.yaml b/daprdocs/data/components/state_stores/generic.yaml index ee5ca782c2f..f553f42b826 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.0" + features: + crud: true + transactions: true + etag: true + ttl: true + query: false