Accept: text/markdown on /query concatenates matched note bodies into one markdown document, each fragment preceded by an HTML-comment source marker. Adds __anw-order (frontmatter-key ordering, asc/desc, missing-key-last) and __anw-kind (homogeneity guard, 400 on a mixed merge). Both evaluate over the full matched set before __anw-limit truncates. Merge mode uses its own body-cloning projection; the JSON path is unchanged (no body clone). |
||
|---|---|---|
| deploy | ||
| scripts | ||
| src | ||
| tests | ||
| .gitignore | ||
| Cargo.lock | ||
| Cargo.toml | ||
| LICENSE-APACHE | ||
| LICENSE-MIT | ||
| README.md | ||
Anwesen
Read-only HTTP daemon over a markdown vault. Walks notes in place, parses YAML frontmatter, watches the directory for changes, and answers three kinds of question over JSON: read one note, list a folder, query by frontmatter.
See the User Manual and ADRs in the project's design vault for the contract and rationale.
Subcommands
anwesen serve --vault <path> [--bind <addr:port>] [--log-level <level>]
anwesen doctor --vault <path> [--log-level <level>]
anwesen version
Each flag has a matching ANWESEN_<UPPER> environment variable; CLI wins
over env.
Deployment
A systemd unit and an example reverse-proxy config live in deploy/.
Anwesen binds 127.0.0.1 and ships no authentication -- the proxy is the
access boundary. See deploy/README.md.
Development
scripts/ci.sh # fmt + clippy + test + hurl contract harness
HTTP contract tests
End-to-end HTTP behaviour is verified by hurl per ADR-008. Install once:
# Ubuntu / Debian
curl -sSL -o /tmp/hurl.deb https://github.com/Orange-OpenSource/hurl/releases/download/8.0.0/hurl_8.0.0_amd64.deb
sudo dpkg -i /tmp/hurl.deb
# Pinned at hurl 8.0.0. Other recent 8.x releases also work but are not
# what CI runs.
Then scripts/ci.sh -- or tests/run-hurl.sh to run just the contract
suite (it builds the debug binary if missing, boots anwesen serve on
127.0.0.1:18086, waits for /health, runs every tests/hurl/**/*.hurl,
and tears the daemon down on exit). Override the port with
ANWESEN_TEST_PORT=<n> if 18086 clashes locally.
License
Dual-licensed under MIT or Apache-2.0 at your option.