Status of every chapter in docs/manual/src. Update this file as you write.
Legend: [x] written and reviewed against the code. [~] written, but a note
below says what is missing. [ ] not started.
Last full re-verification: against main at the merge that brought in
pluggable storage, planned schema migrations, contextual read authorization,
attribute protection, and the Java client.
introduction.md — audience, structure, conventions, aside labels,
terminology table.getting-started.md — build, --store mem transactor, TOML schema,
db create, write through postgres-server --allow-writes, console,
SQL, TUI, schema update, stop.theory/index.md — the five ideas and the operational consequences.theory/datoms.md — datom shape, entity ids, partitions, t,
transaction time as data, the nine value types plus Sealed, schema is
data, schema generation.theory/log.md — commit point, record frame, pipeline, group commit,
log layout per store, lease-versioned files, reading the log.theory/indexes.md — four covering indexes, segments, database root,
what a peer holds today, incremental publication, storage traits,
collection, safety argument.theory/time.md — database value, views, wall-clock naming, cost of a
view, transaction reports, tx-range.theory/processes.md — storage service, transactor, peer, peer server,
the proposed operator service and fleet, "which process needs what".running/installation.md — toolchain, Cargo features, building a
loadable driver, workspace build note, ports, fs layout, supervision
and the SIGINT-only note.running/transactor.md — every flag group, plugin flags, production
example.running/storage.md — five built-in backends, read-only discovery
credentials, per-backend detail, runtime plugins, store verify,
choosing a backend.running/config-file.md — every EDN key, what the file does not hold.running/catalog.md — connection flags, create, list, stats, delete.running/schema.md — TOML and EDN, property meanings, enumerations,
schema update plan/apply, execution classes, acknowledgement codes,
--prune and retirement, audit trail, inspection, reserved idents.running/indexing.md — pacing, runtime overrides, request-index,
bulk loading, watching lag.surfaces/console.md — input kinds, command table, timestamps, view
cost, bootstrap, watch.surfaces/tui.md — navigation and the four panels.surfaces/sql.md — projection, shell, wire server, write subset,
explicit transactions, ORM support, per-principal authentication.surfaces/peer-server.md — flags, fuel, bootstrap, segment cache,
failover, thin-client contract, per-principal service, language
clients.security/authentication.md — permissive default, strict mode, client
tokens, OIDC, TLS, recommended settings.security/authorization.md — bootstrap, tuples, the 15 actions,
default permissions, check, status, operating notes, lockout recovery,
views, key grants, surfaces that fail closed.security/encryption.md — fixed at creation, key identities, which
processes need keys, offline commands, status, rotate, rewrap, the
unavailable and fenced states, the second layer.security/protection.md — declaring a class, class options and their
cost, which processes need class keys, per-principal key policy,
upgrading a guarded server, forward-only protection changes.availability/high-availability.md — pair setup, storage requirements,
peer failover, guarantees, unavailability window, ambiguous
transactions, tuning.availability/backup.md — online backup, incremental, the archive,
where it can run, restore, verification, policy.availability/fork.md — commands, what it copies, rules, when not to
fork, cleanup.availability/gc.md — retention rule, scheduled and manual, zero
window, safety, monitoring, tuning.operations/monitoring.md — metrics endpoint, every metric name,
db stats, the schema audit query, logging targets, what to alert on.operations/runbooks.md — 16 procedures: planned failover, crashed
active, split brain, both down, restore, startup failure, refused
writes, ambiguous transaction, schema change, blocked schema plan,
total denial, index lag, peer memory, encrypted backup, full storage,
log-replay recovery.reference/commands.md — every command and flag group, plus the
commands that do not exist.reference/environment.md — every variable, secret handling.reference/defaults.md — default values by area, duration and size
formats.reference/glossary.md — 52 terms.The manual follows the code. Where a design or reference document disagrees, the manual is right and the other document needs a correction pass.
crates/corium-pgwire/README.md closes with "PostgreSQL usernames and
passwords are not yet mapped to Corium principals". They are. The password
field carries the caller's bearer token, and every statement is authorized
as the resulting principal (ADR-0021).docs/thin-client-protocol.md is titled "v1" and says every request sends
protocol_version = 1. corium_protocol::PROTOCOL_VERSION is 3, and
MIN_SUPPORTED_PROTOCOL_VERSION is 1.docs/design/encryption.md opens by listing protection changes as not
implemented. They are: corium schema update protects, unprotects, and
re-classifies an attribute forward-only, as the same document's
"Changing protection" section and docs/design/schema-migrations.md
both state.docs/schema-toml.md calls corium schema update "proposed" and says
doc and protection are "design commitments rather than accepted
fields". Both parse today, in TOML and in EDN.docs/operations.md still tells an operator to read :lease-owner and
:lease-owner-endpoint from corium db stats. It prints neither
(crates/corium-cli/src/main.rs:2345). Only the TUI Metrics panel shows
them, from the same Status call.docs/operations.md still calls the peer SSD segment cache "proposed". It
is implemented: --segment-cache-dir, --segment-cache-capacity,
--segment-cache-memory, and six Prometheus metrics.docs/design/data-model.md lists BigInt/BigDec value variants.
corium_core::Value has ten variants and neither of those.docs/design/data-model.md describes user partitions created as entities
with :db/ident. corium_core::Partition has three variants and no way to
add one.These were recorded as gaps and are now implemented. The chapters were rewritten, not patched.
corium schema update
plans and applies attribute changes. The copy-to-a-new-database migration
procedure is gone.UNIMPLEMENTED. Attribute views and protection key grants both
apply on the peer server and on pgwire.:db/doc works, and enumerated ident entities work.--store-plugin and
corium store verify.corium transact command. The console is read-only. The only CLI
write path is postgres-server --allow-writes.rewrite schema changes are always blocked. The only rewrite step the
planner emits is a cardinality collapse with conflicts, and it is refused.
destructive changes can never run.corium schema has only update. status, history, and job
inspection are planned.corium backup refuses an encrypted database. Backup format 2 is not
built.file: and env: work.SIGTERM is not handled. Only SIGINT triggers graceful shutdown and
lease release.store verify load storage plugins. A
storage-aware peer against a plugin backend fails.corium keys protect,
unprotect, or audit, nor class-key rotation and shredding.scope = "entity" protection parses but does not seal.docs/benchmarks/ has an M3 baseline that could seed it.NodeConfig::max_commit_batch and
max_commit_batch_bytes are not exposed as CLI flags, so they were left
out. See docs/design/write-path-scaling.md if flags are added.--db-fn-fuel and
--db-fn-memory-bytes are documented in the transactor chapter only.
:db/fn code still has no CLI deployment surface. Confirm how a
:db/fn is installed before writing it.tenant: objects and rewrites, but the manual documents only the flat
database: case. Read the rewrite rules in
crates/corium-authz/src/schema.rs before writing it.examples/musicbrainz exists
in the repository README but not in the manual.docs/storage-plugins.md is the author's
guide. The manual covers only the operator's side.Install mdbook, then build:
cargo install mdbook --locked
mdbook build docs/manual
mdbook serve docs/manual
The book builds clean as of this writing. docs/manual/book/ is in
.gitignore.
book.toml sets create-missing = false, so a broken SUMMARY.md link fails
the build rather than creating an empty page.
.github/workflows/publish-manual.yml renders the book and mirrors it to a
web host over SFTP. It runs on a push to main that touches docs/manual/,
and on demand through workflow_dispatch.
The host, port, and remote directory come from repository variables
(MANUAL_SFTP_HOST, MANUAL_SFTP_PORT, MANUAL_SFTP_REMOTE_DIR), and a
manual run can override each one. The credentials are secrets
(MANUAL_SFTP_USERNAME, MANUAL_SFTP_PASSWORD), as is the optional
MANUAL_SFTP_KNOWN_HOSTS host key. The workflow header documents the
resolution order.
The remote directory is mirrored with --delete, so give the manual a
directory of its own. A workflow_dispatch run with dry_run set builds the
book, reports the target, and uploads nothing.
Every internal link and anchor resolves, and the style check finds no banned modal, contraction, semicolon, or sentence over 25 words.
Can you improve this documentation? These fine people already did:
Claude & Casey MarshallEdit on GitHub
cljdoc builds & hosts documentation for Clojure/Script libraries
| Ctrl+k | Jump to recent docs |
| ← | Move to previous article |
| → | Move to next article |
| Ctrl+/ | Jump to the search field |