Skip to content

RDoc-4065 + RDoc-4074 Developer access: Overview + Access via RavenDB.Client - #2607

Open
Danielle9897 wants to merge 4 commits into
ravendb:mainfrom
Danielle9897:RDoc-4065-quill-access-mirrored-database
Open

RDoc-4065 + RDoc-4074 Developer access: Overview + Access via RavenDB.Client#2607
Danielle9897 wants to merge 4 commits into
ravendb:mainfrom
Danielle9897:RDoc-4065-quill-access-mirrored-database

Conversation

@Danielle9897

Copy link
Copy Markdown
Member

Issue links

https://issues.hibernatingrhinos.com/issue/RDoc-4065/Quill-documentation-Access-the-mirrored-database-with-RavenDB.Client
https://issues.hibernatingrhinos.com/issue/RDoc-4074/Quill-documentation-Developer-access-overview

Additional description

  • Developer Access overview article:
    Explain the two ways to work with data mirrored by a Quill app.
  • Access the mirrored database with RavenDB.Client article:
    Document how an external application can query or process a Quill app's mirrored data directly in RavenDB,
    without passing through a Quill agent, an LLM, a channel, or the Quill API.

Type of change

  • Content - docs
  • Content - cloud
  • Content - Quill
  • Content - guides
  • Content - start pages/other
  • New docs feature (consider updating /templates or readme)
  • Bug fix
  • Optimization
  • Other

Changes in docs URLs

  • No changes in docs URLs
  • Articles are restructured, URLs will change, mapping is required (update /scripts/redirects.json file, set Documents Moved PR label)

Changes in UX/UI

  • No changes in UX/UI
  • Changes in UX/UI (include screenshots and description)

* Changes made directly in RavenDB are not written back to the source database.

`RavenDB.Client` connects to RavenDB through `https://db.<domain>` without passing through the Quill web application.
For details about this connection path and its TLS handling, see [Direct database access](../../quill/security-and-architecture/network-architecture.mdx#direct-database-access).

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Link doesn't work

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

fixed


With `RavenDB.Client`, your application accesses the **mirrored data in RavenDB**, not the source relational database:

* The source database remains the system of record.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I had to search what it means, can we use a different wording? Source of truth would probably be better, though I may have a personal bias towards it

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

done

Comment on lines +120 to +123
For a standard Quill domain, RavenDB presents a publicly trusted wildcard server certificate,
so the application needs no additional server-certificate trust configuration.
Client certificates are registered separately by thumbprint,
so renewing the Quill server certificate does not invalidate them.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I wouldn't manually add newlines here, looks odd
Image

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

removed the extra line breaks

Each app in the response includes both `slug` and `database`.
Set `DocumentStore.Database` to the value of `database`; do not derive it from the app's display name.

For more information about authenticating this Quill API request, see [Operator Authentication](../../quill/security-and-architecture/operator-authentication.mdx).

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Link doesn't work

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

fixed

<Panel heading="Understand the mirrored document structure">

The source relational schema is not mirrored one-to-one as a separate RavenDB collection for every table.
The CDC mapping defined for the app determines:

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There is no prior introduction what CDC is, so I wouldn't mention it this way

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

=>
The way Quill maps data from the source relational database to RavenDB determines:

Comment on lines +266 to +268
```text
Products/1
```

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'd rather just inline it in the sentence

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

done

The following .NET 9 or later example loads the `.pfx`, connects to the app's RavenDB database,
and queries the mapped `Products` collection:

```csharp

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe we should consider samples in all supported languages?

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

sure, can do that in a separate issue once we're good with the initial Quill documentation batch.


<Panel heading="Inspect the CDC task">

Quill creates a CDC Sink task in each app database to keep its mapped documents synchronized with the source relational database.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We should at least link the CDC task documentation here

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@Lwiel
The only way I could make this link navigate from the Quill documentation to the RavenDB documentation was to use: [CDC Sink task](/7.2/server/ongoing-tasks/cdc-sink/overview)
However, this hardcodes the RavenDB version.
Is there a version-independent way to link to this page from the Quill documentation?

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What about https://docs.ravendb.net/server/ongoing-tasks/cdc-sink/overview?

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

will use this - it works - thanks

<br/>

Configure `DisableTopologyUpdates` before calling `Initialize()`.
For more information, see [The `a` hostname](../../quill/networking-and-dns.mdx#the-a-hostname).

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Link doesn't work

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

fixed


If the Quill host moves to another IP address, update all Quill DNS records so that `db.<domain>`, `a.<domain>`,
and the other Quill hostnames resolve to the new address.
See [Moving your Quill to a new IP](../../quill/networking-and-dns.mdx#moving-your-quill-to-a-new-ip).

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Link doesn't work

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

fixed

Comment on lines +282 to +283
Most collections containing these internal documents begin with `@`, but not all of them do.
For example, the `WidgetThemeDefaults` collection contains Quill's `widget-theme-defaults/config` document and has no `@` prefix.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That's something I'll change, we have to be consistent with this

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Changed in this PR - ravendb/ravendb#23502

Now all internal documents are either in configuration database, or in the per-app database collections prefixed with @

@Danielle9897
Danielle9897 force-pushed the RDoc-4065-quill-access-mirrored-database branch from fbeb361 to 1bbcc61 Compare August 31, 2026 16:10
@Danielle9897
Danielle9897 requested a review from Lwiel August 31, 2026 16:10
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants