crabidy/architecture
Test User 4e59e50943 Gate the gRPC surface behind basic-auth roles
crabidy-server.toml gains an [auth] section with one argon2 PHC hash
per role: owner (everything), queue-owner (queue and playback, no
library writes), queue-appender (browse, search, and Append only).
Enforcement is a single fail-closed tower layer in front of the tonic
service — unknown methods require owner, a malformed config aborts
startup, and a missing one keeps the server open as before. Successful
credentials are cached so argon2 runs once, failures re-verify at full
cost and stay indistinguishable. crabidy-server hash-password turns a
stdin password into the config hash; cbd-tui sends the header from new
user/password options.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-21 20:47:06 +02:00
..
bookmarks.md Capture library subtrees as bookmarks 2026-07-21 11:11:27 +02:00
capture-deletion.md Delete captures from disk at any depth, behind a confirmation 2026-07-21 20:34:03 +02:00
captures.md Make download captures incremental with skipped tracks and progress 2026-07-21 15:45:04 +02:00
cbd-bundle.md Bundle server and TUI into a single cbd binary 2026-07-21 14:15:47 +02:00
fs-provider.md Persist queues as fs-provider folders 2026-07-21 10:41:49 +02:00
help-modal.md Add a help modal to cbd-tui behind a declarative binding table 2026-07-20 17:27:12 +02:00
incremental-captures.md Make download captures incremental with skipped tracks and progress 2026-07-21 15:45:04 +02:00
node-editing.md Add rename and delete for modifiable library nodes 2026-07-20 23:34:47 +02:00
overview.md Document the as-built architecture 2026-07-20 10:34:45 +02:00
progressive-queueing.md Queue large collections progressively 2026-07-21 01:08:34 +02:00
queue-persistence.md Capture library subtrees as bookmarks 2026-07-21 11:11:27 +02:00
roles-auth.md Gate the gRPC surface behind basic-auth roles 2026-07-21 20:47:06 +02:00
search.md Add Tidal search as creatable library nodes 2026-07-20 17:58:44 +02:00
youtube-provider.md Replace the yt-dlp subprocess with the pure-Rust rustypipe client 2026-07-21 17:12:40 +02:00
youtube-rustypipe.md Fetch streams in bounded windows and restore yt-dlp for stream URLs 2026-07-21 18:18:40 +02:00