Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
23 changes: 7 additions & 16 deletions docs/server/security/authentication/certificate-configuration.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,6 @@ sidebar_position: 0
---

import Admonition from '@theme/Admonition';
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import CodeBlock from '@theme/CodeBlock';
import LanguageSwitcher from "@site/src/components/LanguageSwitcher";
import LanguageContent from "@site/src/components/LanguageContent";
Expand Down Expand Up @@ -101,7 +99,6 @@ Read more about RavenDB configuration options [here](../../configuration/configu

For example, this is a typical [settings.json](../../configuration/configuration-options.mdx#json) for a manual setup:

<TabItem value="json" label="json">
<CodeBlock language="json">
{`\{
"ServerUrl": "https://rvn-srv-1:8080",
Expand All @@ -111,10 +108,9 @@ For example, this is a typical [settings.json](../../configuration/configuration
"Path": "/home/secrets/server.pfx",
"Password": "s3cr7t p@$$w0rd"
\}
\}
\}
`}
</CodeBlock>
</TabItem>



Expand All @@ -136,7 +132,6 @@ Let's look at an example -
To use `Security.Certificate.Load.Exec` with a PowerShell script, the [settings.json](../../configuration/configuration-options.mdx#json)
must be stored in each node's `Server` folder and will look something like this:

<TabItem value="json" label="json">
<CodeBlock language="json">
{`\{
"ServerUrl": "https://rvn-srv-1:8080",
Expand All @@ -147,11 +142,9 @@ must be stored in each node's `Server` folder and will look something like this:
\}
`}
</CodeBlock>
</TabItem>

A sample powershell script called `give_me_cert.ps1` that matches the `settings.json` configuration:

<TabItem value="powershell" label="powershell">
<CodeBlock language="powershell">
{`try
\{
Expand All @@ -168,7 +161,6 @@ catch
\}
`}
</CodeBlock>
</TabItem>



Expand Down Expand Up @@ -215,21 +207,17 @@ In all secure configurations, the `ServerUrl` must contain the same domain name

5. The PowerShell CLI window will be running the server terminal. The last line should read `ravendb>`.
In the CLI, run the [generateClientCert](../../../server/administration/cli.mdx#generateclientcert) command to generate a client certificate.
- The following is a generic RavenDB CLI command.
<TabItem value="plain" label="plain">
- The following is a generic RavenDB CLI command.
<CodeBlock language="plain">
{`ravendb> generateClientCert <your-client-certificate-name> <path-to-output-folder> <number of months> [optional password]
`}
</CodeBlock>
</TabItem>
- In the following example the certificate will be named RavenDBClient, will be stored at C:\Users\administrator\Documents, will be valid for 60 months, and will have no password.
If a password is required add it to the end of the command.
<TabItem value="plain" label="plain">
<CodeBlock language="plain">
{`ravendb> generateClientCert RavenDBClient C:\\Users\\administrator\\Documents 60
`}
</CodeBlock>
</TabItem>
- A few seconds after running this command, a `.zip` file will download into the output folder that you defined.

6. Extract the contents of the .zip file generated into the folders where your nodes live.
Expand All @@ -246,8 +234,11 @@ In all secure configurations, the `ServerUrl` must contain the same domain name

8. To set up as an OS service, run PowerShell as an administrator and navigate to the root `Server` folder where the `settings.json` is located.
Copy and paste the following command `.\rvn.exe windows-service register --service-name RavenDB`.
<Admonition type="note" title=""> It will set up the cluster as an OS service, which [will launch the server automatically](../../../start/installation/running-as-service.mdx) every time the machine starts,
but will fail to start if the Local Service account doesn't have access to all the required resources. </Admonition>

<Admonition type="note" title="">
It will set up the cluster as an OS service, which [will launch the server automatically](../../../start/installation/running-as-service.mdx) every time the machine starts,
but will fail to start if the Local Service account doesn't have access to all the required resources.
</Admonition>
- Open the "Services" manager for Windows. Make sure that the "RavenDB" service is there and that the Startup Type is "Automatic".

9. Now the service should run whenever the machine starts and the Studio should be accessible by the user with the client certificate.
Expand Down
6 changes: 3 additions & 3 deletions guides/the-ravendb-kubernetes-operator-way.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -641,7 +641,7 @@ That decision lives directly in the `RavenDBCluster` spec under `externalAccessC
For example, choosing an ingress controller looks like this:

```yaml showLineNumbers
spec: externalAccessConfiguration: type: ingress-controller
spec: externalAccessConfiguration: type: ingress-controller
```

At this stage, this is just a declaration of intent. The detailed configuration for each model is added incrementally later in this part.
Expand Down Expand Up @@ -1990,7 +1990,7 @@ $ kubectl create secret generic ravendb-client-cert --from-file=client.pfx=/path
You can check the secrets were properly created by:

```bash showLineNumbers
$ kubectl get secrets -n ravendb
$ kubectl get secrets -n ravendb
NAME TYPE DATA AGE
ravendb-certs-a Opaque 1 21s
ravendb-certs-b Opaque 1 18s
Expand Down Expand Up @@ -2165,7 +2165,7 @@ You can watch this process in real time:

```bash showLineNumbers
$ kubectl logs job/ravendb-cluster-init -n ravendb
>> Starting RavenDB cluster bootstrapper... [11:55:08] === Starting Discoverability Checks === [11:55:08] Checking if kubectl is already installed... [11:55:08] Downloading and installing kubectl... [11:55:42] kubectl installed successfully. [11:55:42] Waiting for all RavenDB pods to be in 'Running' state... [11:55:42] Pod readiness check: attempt 1/30 [11:55:42] All RavenDB pods are running. [11:55:42] Checking HTTPS (Studio) reachability of RavenDB nodes... [11:55:42] [a] curl -k https://a.ravendb-operator-e2e.ravendb.run:443 [11:55:42] [a] Studio redirect detected - looks good [11:55:42] [b] curl -k https://b.ravendb-operator-e2e.ravendb.run:443 [11:55:42] [b] Studio redirect detected - looks good [11:55:42] [c] curl -k https://c.ravendb-operator-e2e.ravendb.run:443 [11:55:42] [c] Studio redirect detected - looks good [11:55:42] === Discoverability Checks Completed === [11:55:42] === Starting Cluster Initialization === [11:55:53] Registering Admin client certificate... [11:55:53] Registering client cert via rvn on first node... [11:55:53] Client cert registered on the first node. [11:55:54] [B] added as Member [11:55:58] [C] added as Member [11:56:01] Cluster topology: { "Leader": "A", "CurrentState": "Leader", "CurrentTerm": 1, "TopologyId": "76d152b9-f968-499d-af74-2307ca8c37ac", "Members": "A B C" } [11:56:01] === Cluster Initialization Complete ===
>> Starting RavenDB cluster bootstrapper... [11:55:08] === Starting Discoverability Checks === [11:55:08] Checking if kubectl is already installed... [11:55:08] Downloading and installing kubectl... [11:55:42] kubectl installed successfully. [11:55:42] Waiting for all RavenDB pods to be in 'Running' state... [11:55:42] Pod readiness check: attempt 1/30 [11:55:42] All RavenDB pods are running. [11:55:42] Checking HTTPS (Studio) reachability of RavenDB nodes... [11:55:42] [a] curl -k https://a.ravendb-operator-e2e.ravendb.run:443 [11:55:42] [a] Studio redirect detected - looks good [11:55:42] [b] curl -k https://b.ravendb-operator-e2e.ravendb.run:443 [11:55:42] [b] Studio redirect detected - looks good [11:55:42] [c] curl -k https://c.ravendb-operator-e2e.ravendb.run:443 [11:55:42] [c] Studio redirect detected - looks good [11:55:42] === Discoverability Checks Completed === [11:55:42] === Starting Cluster Initialization === [11:55:53] Registering Admin client certificate... [11:55:53] Registering client cert via rvn on first node... [11:55:53] Client cert registered on the first node. [11:55:54] [B] added as Member [11:55:58] [C] added as Member [11:56:01] Cluster topology: { "Leader": "A", "CurrentState": "Leader", "CurrentTerm": 1, "TopologyId": "76d152b9-f968-499d-af74-2307ca8c37ac", "Members": "A B C" } [11:56:01] === Cluster Initialization Complete ===
```

The logs are intentionally explicit. You’ll see DNS resolution, connectivity checks, and node additions logged step by step. When this job completes successfully, the cluster is fully formed \- no manual setup, no UI-driven registration, no follow-up actions required.
Expand Down
3 changes: 2 additions & 1 deletion src/components/Common/Icon.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,8 @@ export function Icon({ icon, size = "sm", className }: IconProps) {

function getSvg(base64String: string, sizeClass: string): string {
const svgContent = atob(base64String.split("base64,")[1]);
const sanitizedSvg = svgContent.replace(/fill="[^"]*"/g, 'fill="currentColor"');
const withoutXmlDecl = svgContent.replace(/<\?xml[^?]*\?>\s*/g, "");
const sanitizedSvg = withoutXmlDecl.replace(/fill="[^"]*"/g, 'fill="currentColor"');
const svgWithClasses = sanitizedSvg.replace(/<svg([^>]*)>/, `<svg$1 class="${sizeClass} ">`);
return svgWithClasses;
}
Expand Down
1 change: 0 additions & 1 deletion static/icons/ai-etl.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
1 change: 0 additions & 1 deletion static/icons/aws.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
2 changes: 1 addition & 1 deletion static/icons/backup-history.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
1 change: 0 additions & 1 deletion static/icons/community.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
2 changes: 1 addition & 1 deletion static/icons/data-archival.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
1 change: 0 additions & 1 deletion static/icons/dbgroup.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
2 changes: 1 addition & 1 deletion static/icons/docker.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
1 change: 0 additions & 1 deletion static/icons/embeddings.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
1 change: 0 additions & 1 deletion static/icons/encryption.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
1 change: 0 additions & 1 deletion static/icons/java.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
1 change: 0 additions & 1 deletion static/icons/kafka-sink.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
1 change: 0 additions & 1 deletion static/icons/powerbi.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
1 change: 0 additions & 1 deletion static/icons/rabbitmq-sink.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
1 change: 0 additions & 1 deletion static/icons/support.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
1 change: 0 additions & 1 deletion static/icons/vector-search.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Loading