Skip to content

docs: overhaul documentation ahead of v1#944

Merged
scarmuega merged 2 commits intomainfrom
docs/v1-docs
Mar 13, 2026
Merged

docs: overhaul documentation ahead of v1#944
scarmuega merged 2 commits intomainfrom
docs/v1-docs

Conversation

@scarmuega
Copy link
Member

@scarmuega scarmuega commented Mar 13, 2026

Summary by CodeRabbit

  • Documentation

    • Reorganized docs: merged Bootstrap into Configuration & Bootstrap, adjusted navigation and section ordering
    • Added pages: Dolos overview, Operations logging, Tx3 integration, and expanded Ouroboros docs
    • Updated gRPC references to UTxO RPC; moved/reordered coverage tables and refined bootstrap guides; removed some legacy extras/initialize pages; grammar and terminology fixes
  • Chores

    • Switched downloadable binary links to tar.gz variants

@coderabbitai
Copy link

coderabbitai bot commented Mar 13, 2026

📝 Walkthrough

Walkthrough

Large-scale documentation restructuring: consolidated Bootstrap into Configuration, moved logging docs to Operations, removed Extras, added UTxO RPC, Ouroboros, and Tx3 integration docs, and updated metadata ordering across multiple documentation directories.

Changes

Cohort / File(s) Summary
API docs & metadata
docs/content/apis/_meta.yml, docs/content/apis/grpc.mdx, docs/content/apis/minibf.mdx, docs/content/apis/ouroboros.mdx
Updated API ordering; retitled gRPC doc to "UTxO RPC" with updated wording and links; moved MiniBF Coverage table; replaced Ouroboros TODO with full unix-socket integration docs and configuration examples.
Bootstrap docs
docs/content/bootstrap/_meta.yml, docs/content/bootstrap/index.mdx, docs/content/bootstrap/local.mdx, docs/content/bootstrap/mithril.mdx, docs/content/bootstrap/relay.mdx
Adjusted bootstrap ordering; expanded index with subcommand guidance and global flags; corrected terminology and example TOML fragments; reworked command examples and execution flow across local/mithril/relay pages.
Configuration docs & schema
docs/content/configuration/_meta.yml, docs/content/configuration/index.mdx, docs/content/configuration/introduction.mdx, docs/content/configuration/schema.mdx
Updated configuration ordering and navigation (removed Initialize, added Introduction); added serve.minikupo schema section (listen_address, permissive_cors); updated tracing reference paths.
Integrations
docs/content/integrations/_meta.yml, docs/content/integrations/blaze.mdx, docs/content/integrations/tx3.mdx
Added Integrations metadata; updated Blaze links/labels to UTxO RPC; added a new Tx3 integration guide covering TRP enablement, SDK examples, and developer workflow.
Operations & logging
docs/content/operations/_meta.yml, docs/content/operations/logging.mdx, docs/content/operations/modes.mdx, docs/content/operations/tracing.mdx
Created Operations section; added detailed logging docs (levels and include_* flags) moved from running/; simplified modes page; updated tracing links to operations/logging.
Installation & site index
docs/content/installation/_meta.yml, docs/content/installation/binaries.mdx, docs/content/installation/docker.mdx, docs/content/index.mdx, docs/content/what.mdx
Adjusted installation ordering; switched binary artifact filenames to .tar.gz; updated docker image alias to v1; merged Configuration & Bootstrap in site index; added new "What is Dolos" overview.
Removed / relocated docs
docs/content/extras/_meta.yml, docs/content/extras/Rationale.mdx, docs/content/running/_meta.yml, docs/content/running/logging.mdx, docs/content/configuration/initialize.mdx
Deleted Extras metadata and Rationale page; removed running/ logging page (migrated to operations/); removed Initialize configuration page.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~35 minutes

Possibly related PRs

Poem

🐰
I hopped through docs with careful paws,
I nudged the sections, cleaned the cause,
Bootstrap joined Configuration's song,
Logging moved where ops belong,
Tx3, UTxO, Ouroboros — hop along! ✨

🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately summarizes the primary change: a comprehensive overhaul of documentation in preparation for v1 release, as evidenced by extensive modifications across multiple documentation files and sections.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch docs/v1-docs
📝 Coding Plan
  • Generate coding plan for human review comments

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 6

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
docs/content/configuration/introduction.mdx (1)

12-12: ⚠️ Potential issue | 🟡 Minor

Minor grammatical fix: "name" → "named".

📝 Suggested fix
-- Config file name `dolos.toml` in the folder of execution.
+- Config file named `dolos.toml` in the folder of execution.
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@docs/content/configuration/introduction.mdx` at line 12, Update the sentence
"Config file name `dolos.toml` in the folder of execution." to use "named"
instead of "name" so it reads "Config file named `dolos.toml` in the folder of
execution." — locate the exact string in the introduction content (the markdown
line containing `dolos.toml`) and replace "name" with "named" to correct the
grammar.
🧹 Nitpick comments (1)
docs/content/bootstrap/local.mdx (1)

48-60: Consider clarifying that relay subcommand works for both local and public nodes.

The documentation uses dolos bootstrap relay for the "Local Node" scenario, which is the same command shown in relay.mdx for "Public Relay". While technically correct (the relay subcommand works for any peer), a brief note explaining this could help users understand they're using the same underlying bootstrap method with different peer configurations.

📝 Suggested clarification
 ## Execution

-To initialize the data stores for syncing from origin, run:
+To initialize the data stores for syncing from origin, use the `relay` bootstrap method (which works for both local and public peers):
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@docs/content/bootstrap/local.mdx` around lines 48 - 60, Add a short
clarifying note after the "dolos bootstrap relay" command explaining that the
"relay" subcommand is the same bootstrap mechanism used for both local and
public peers (it works for any peer configuration), and link or reference the
relay documentation (relay.mdx) for differences in peer configuration; update
the paragraph containing "dolos bootstrap relay" and optionally the following
"dolos daemon" line to include one sentence like "Note: the `dolos bootstrap
relay` command is the same for local and public nodes — see relay.mdx for
configuring peers."
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@docs/content/installation/docker.mdx`:
- Around line 34-39: The example image tag "ghcr.io/txpipe/dolos:v1" is a
floating major alias, not a fixed production pin; update the example to show a
fully pinned release (e.g. use a specific semver like
"ghcr.io/txpipe/dolos:v1.2.3") or add a brief sentence after the example
clarifying that "v1" is a moving major tag and recommending using an exact
release tag (major.minor.patch) for production deployments; locate the example
string "ghcr.io/txpipe/dolos:v1" in the docs and replace or augment it
accordingly.

In `@docs/content/integrations/blaze.mdx`:
- Line 10: Replace the inconsistent expansion "UTxORPC" with the standardized
"UTxO RPC" wherever it expands the shorthand "U5C" in this document;
specifically change the phrase that reads "U5C (short for UTxORPC)" to "U5C
(short for UTxO RPC)" so it matches the link label "[UTxO RPC documentation]"
and the renamed API page.

In `@docs/content/integrations/tx3.mdx`:
- Around line 21-26: Update the docs to explicitly state that permissive_cors
defaults to true in the configuration (i.e., omitted values are treated as true
in the config default), and add a brief security callout advising operators to
set permissive_cors to false in production; reference the configuration option
name permissive_cors and the config default behavior in your wording so readers
understand the actual server default and the recommended mitigation.

In `@docs/content/operations/modes.mdx`:
- Around line 41-45: The table uses the term "relay" in the "daemon" row without
defining it; update the docs by either adding a short definition of "relay"
above the table (e.g., "relay: forwards data/requests between peers or
networks") or revise the "daemon" row to avoid an undefined term (e.g., "daemon
| sync + serve (includes relay functionality)"). Refer to the table entries
"daemon", "sync", "serve", and the undefined term "relay" when making the change
so readers immediately understand whether relay is a standalone mode or part of
daemon.

In `@docs/content/what.mdx`:
- Around line 15-18: Replace the incorrect description of TRP in the API
overview: instead of saying "TRP enables real-time streaming of chain events,"
update the clause to state that TRP is the Transaction Resolver Protocol used by
Tx3 clients to resolve and submit transactions (and optionally link integrators
to the Tx3 client interface), and keep the real-time streaming reference pointed
at the actual streaming interface (if intended) such as the streaming
API/real-time endpoint; modify the sentence in the paragraph containing "TRP"
and "Tx3" accordingly so the overview accurately directs integrators to TRP for
transaction resolution/submission.
- Around line 41-45: Update the wording under the "## Simple bootstrapping"
section: replace the phrase "full mainnet node" (the sentence about Mithril
bootstrapping syncing a full mainnet node) with language that calls it a
"mainnet Dolos node/instance" or "mainnet Dolos deployment" and add that Dolos
is a lightweight Cardano data node that keeps an updated ledger copy without
performing full consensus validation, relying on trusted upstream peers; edit
the sentence mentioning Mithril snapshot import (and the following sentence
about snapshots) to reflect this rephrasing so the architecture story remains
consistent.

---

Outside diff comments:
In `@docs/content/configuration/introduction.mdx`:
- Line 12: Update the sentence "Config file name `dolos.toml` in the folder of
execution." to use "named" instead of "name" so it reads "Config file named
`dolos.toml` in the folder of execution." — locate the exact string in the
introduction content (the markdown line containing `dolos.toml`) and replace
"name" with "named" to correct the grammar.

---

Nitpick comments:
In `@docs/content/bootstrap/local.mdx`:
- Around line 48-60: Add a short clarifying note after the "dolos bootstrap
relay" command explaining that the "relay" subcommand is the same bootstrap
mechanism used for both local and public peers (it works for any peer
configuration), and link or reference the relay documentation (relay.mdx) for
differences in peer configuration; update the paragraph containing "dolos
bootstrap relay" and optionally the following "dolos daemon" line to include one
sentence like "Note: the `dolos bootstrap relay` command is the same for local
and public nodes — see relay.mdx for configuring peers."

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 78ddf601-eecd-4313-979e-48fa12946471

📥 Commits

Reviewing files that changed from the base of the PR and between 35cbbea and b9fec6c.

📒 Files selected for processing (30)
  • docs/content/apis/_meta.yml
  • docs/content/apis/grpc.mdx
  • docs/content/apis/minibf.mdx
  • docs/content/apis/ouroboros.mdx
  • docs/content/bootstrap/_meta.yml
  • docs/content/bootstrap/index.mdx
  • docs/content/bootstrap/local.mdx
  • docs/content/bootstrap/mithril.mdx
  • docs/content/bootstrap/relay.mdx
  • docs/content/configuration/_meta.yml
  • docs/content/configuration/index.mdx
  • docs/content/configuration/initialize.mdx
  • docs/content/configuration/introduction.mdx
  • docs/content/configuration/schema.mdx
  • docs/content/extras/Rationale.mdx
  • docs/content/extras/_meta.yml
  • docs/content/index.mdx
  • docs/content/installation/_meta.yml
  • docs/content/installation/binaries.mdx
  • docs/content/installation/docker.mdx
  • docs/content/integrations/_meta.yml
  • docs/content/integrations/blaze.mdx
  • docs/content/integrations/tx3.mdx
  • docs/content/operations/_meta.yml
  • docs/content/operations/logging.mdx
  • docs/content/operations/modes.mdx
  • docs/content/operations/tracing.mdx
  • docs/content/running/_meta.yml
  • docs/content/running/logging.mdx
  • docs/content/what.mdx
💤 Files with no reviewable changes (5)
  • docs/content/running/logging.mdx
  • docs/content/running/_meta.yml
  • docs/content/configuration/initialize.mdx
  • docs/content/extras/Rationale.mdx
  • docs/content/extras/_meta.yml

Comment on lines +21 to +26
| Property | Type | Description |
|---------------------|---------|----------------------------------------------------------|
| listen_address | string | Local address (`IP:PORT`) to listen for TRP connections |
| max_optimize_rounds | integer | Max optimization rounds for fee balancing (default: 10) |
| permissive_cors | boolean | Allow cross-origin requests from any origin |
| extra_fees | integer | Optional extra lovelace to add during fee optimization |
Copy link

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟠 Major

Call out the default-open CORS behavior.

permissive_cors is security-sensitive, but Lines 21-26 only describe what it does. The implementation defaults omitted values to true (crates/core/src/config.rs:779-823), so please state that explicitly here; otherwise the example reads more locked down than the server actually is.

📝 Suggested doc fix
-| permissive_cors     | boolean | Allow cross-origin requests from any origin              |
+| permissive_cors     | boolean | Allow cross-origin requests from any origin (default: true) |
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
| Property | Type | Description |
|---------------------|---------|----------------------------------------------------------|
| listen_address | string | Local address (`IP:PORT`) to listen for TRP connections |
| max_optimize_rounds | integer | Max optimization rounds for fee balancing (default: 10) |
| permissive_cors | boolean | Allow cross-origin requests from any origin |
| extra_fees | integer | Optional extra lovelace to add during fee optimization |
| Property | Type | Description |
|---------------------|---------|----------------------------------------------------------|
| listen_address | string | Local address (`IP:PORT`) to listen for TRP connections |
| max_optimize_rounds | integer | Max optimization rounds for fee balancing (default: 10) |
| permissive_cors | boolean | Allow cross-origin requests from any origin (default: true) |
| extra_fees | integer | Optional extra lovelace to add during fee optimization |
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@docs/content/integrations/tx3.mdx` around lines 21 - 26, Update the docs to
explicitly state that permissive_cors defaults to true in the configuration
(i.e., omitted values are treated as true in the config default), and add a
brief security callout advising operators to set permissive_cors to false in
production; reference the configuration option name permissive_cors and the
config default behavior in your wording so readers understand the actual server
default and the recommended mitigation.

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 2

🧹 Nitpick comments (2)
docs/content/what.mdx (1)

23-25: Minor: Consider hyphenating "Conway-era".

The static analysis tool suggests "Conway-era support" with a hyphen for compound adjective style. This is a minor stylistic improvement.

📝 Optional style improvement
-With Conway era support, Dolos also tracks governance data including delegation representatives (DReps) and proposals.
+With Conway-era support, Dolos also tracks governance data including delegation representatives (DReps) and proposals.
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@docs/content/what.mdx` around lines 23 - 25, Update the phrase "Conway era
support" to use the compound-adjective hyphenation "Conway-era support" in the
text block titled "Comprehensive Cardano support" (replace the occurrence of the
substring "Conway era support" with "Conway-era support") so the compound
adjective is styled correctly.
docs/content/integrations/tx3.mdx (1)

21-27: Add a security note for permissive_cors in production.

The default value is now documented (addressing the prior feedback), but operators should be warned that permissive_cors: true allows any origin and is unsuitable for production deployments exposed to the internet.

📝 Suggested addition after the table
 | extra_fees          | integer | Optional extra lovelace to add during fee optimization   |
+
+:::caution
+The `permissive_cors` option defaults to `true`, which allows cross-origin requests from any domain. For production deployments, set `permissive_cors = false` or configure appropriate CORS policies at your reverse proxy.
+:::
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@docs/content/integrations/tx3.mdx` around lines 21 - 27, Add a concise
security note immediately after the properties table warning that
permissive_cors: true allows any origin and is unsafe for public production
deployments; recommend setting permissive_cors to false for internet-exposed
deployments, mention the risk of unwanted cross-origin access and credential
exposure, and suggest operators explicitly configure allowed origins or use a
proxy/CORS whitelist instead of relying on the default.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@docs/content/integrations/tx3.mdx`:
- Around line 54-60: The Aside in docs/content/integrations/tx3.mdx incorrectly
implies Dolos has a default TRP port; update the text to clarify that while the
Tx3 CLI's built-in cardano-local network defaults to http://localhost:8164,
Dolos' TRP configuration (see TrpConfig and its required listen_address field)
has no default and must be explicitly set in Dolos' config or it will fail to
start; revise the example note and the invocation suggestion to state this
requirement and recommend setting listen_address in Dolos' config when using the
local profile.
- Around line 76-88: The Rust example uses non-existent APIs (Tx3Client,
CardanoSigner::from_mnemonic, Party::signer, Party::address, tx(), with_party())
and will not compile; replace this snippet with a correct example using the
actual crate (e.g., tx3_sdk::trp::Client and its real methods) or remove the
example and point readers to the official Tx3 docs; locate the block that
constructs Tx3Client and calls .with_party / .tx and either rewrite it to use
tx3_sdk::trp::Client and the SDK's actual authentication/signing flow or delete
it and add a link to https://docs.txpipe.io/tx3 for the supported usage.

---

Nitpick comments:
In `@docs/content/integrations/tx3.mdx`:
- Around line 21-27: Add a concise security note immediately after the
properties table warning that permissive_cors: true allows any origin and is
unsafe for public production deployments; recommend setting permissive_cors to
false for internet-exposed deployments, mention the risk of unwanted
cross-origin access and credential exposure, and suggest operators explicitly
configure allowed origins or use a proxy/CORS whitelist instead of relying on
the default.

In `@docs/content/what.mdx`:
- Around line 23-25: Update the phrase "Conway era support" to use the
compound-adjective hyphenation "Conway-era support" in the text block titled
"Comprehensive Cardano support" (replace the occurrence of the substring "Conway
era support" with "Conway-era support") so the compound adjective is styled
correctly.

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 4cd3665b-9424-495f-a3e6-f3949125e629

📥 Commits

Reviewing files that changed from the base of the PR and between b9fec6c and 4809e03.

📒 Files selected for processing (6)
  • docs/content/configuration/introduction.mdx
  • docs/content/installation/docker.mdx
  • docs/content/integrations/blaze.mdx
  • docs/content/integrations/tx3.mdx
  • docs/content/operations/modes.mdx
  • docs/content/what.mdx
🚧 Files skipped from review as they are similar to previous changes (4)
  • docs/content/operations/modes.mdx
  • docs/content/integrations/blaze.mdx
  • docs/content/installation/docker.mdx
  • docs/content/configuration/introduction.mdx

Comment on lines +54 to +60
<Aside type="note">
The built-in `cardano-local` network already defaults to `http://localhost:8164`, matching the default Dolos TRP port. If you're running Dolos locally with default settings, you can use the `local` profile directly:

```bash
trix invoke --profile local
```
</Aside>
Copy link

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟡 Minor

Clarify that Dolos has no default TRP port.

The aside states this matches "the default Dolos TRP port," but according to TrpConfig in crates/core/src/config.rs, listen_address is a required field with no default. Dolos will fail to start TRP if the address is omitted.

The Tx3 CLI's cardano-local network may default to port 8164, but Dolos itself requires explicit configuration.

📝 Suggested rewording
 <Aside type="note">
-The built-in `cardano-local` network already defaults to `http://localhost:8164`, matching the default Dolos TRP port. If you're running Dolos locally with default settings, you can use the `local` profile directly:
+The built-in `cardano-local` network already defaults to `http://localhost:8164`. If you configure Dolos with `listen_address = "[::]:8164"` as shown above, you can use the `local` profile directly:
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
<Aside type="note">
The built-in `cardano-local` network already defaults to `http://localhost:8164`, matching the default Dolos TRP port. If you're running Dolos locally with default settings, you can use the `local` profile directly:
```bash
trix invoke --profile local
```
</Aside>
<Aside type="note">
The built-in `cardano-local` network already defaults to `http://localhost:8164`. If you configure Dolos with `listen_address = "[::]:8164"` as shown above, you can use the `local` profile directly:
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@docs/content/integrations/tx3.mdx` around lines 54 - 60, The Aside in
docs/content/integrations/tx3.mdx incorrectly implies Dolos has a default TRP
port; update the text to clarify that while the Tx3 CLI's built-in cardano-local
network defaults to http://localhost:8164, Dolos' TRP configuration (see
TrpConfig and its required listen_address field) has no default and must be
explicitly set in Dolos' config or it will fail to start; revise the example
note and the invocation suggestion to state this requirement and recommend
setting listen_address in Dolos' config when using the local profile.

@scarmuega scarmuega merged commit 5704d4e into main Mar 13, 2026
12 checks passed
@scarmuega scarmuega deleted the docs/v1-docs branch March 13, 2026 13:43
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.

1 participant