feat(server): grant-scope org attachment write paths (v0.8.1 Stream D) #8

Closed
alee wants to merge 0 commits from feature/v0.8.1-dev-d-server-hook into main
Owner

Extends classify_path to classify attachments///.enc (exactly 3 segments) as PathClass::Item{collection: slug}, converting org attachment writes from Unrestricted to grant-scoped (closes a latent authz gap). Mirrors items/ branch guards; dot-free guard on slug (segment[0]) only. Bumps relicario-server 0.1.0 -> 0.1.1 and documents the required pre-receive hook redeploy in docs/SECURITY.md. 5 server tests (3 spec + 2 hardening); full server suite 23 green. Contract matches Dev-C save_attachment emitter (confirmed via PM).

Extends classify_path to classify attachments/<slug>/<item-id>/<att-id>.enc (exactly 3 segments) as PathClass::Item{collection: slug}, converting org attachment writes from Unrestricted to grant-scoped (closes a latent authz gap). Mirrors items/ branch guards; dot-free guard on slug (segment[0]) only. Bumps relicario-server 0.1.0 -> 0.1.1 and documents the required pre-receive hook redeploy in docs/SECURITY.md. 5 server tests (3 spec + 2 hardening); full server suite 23 green. Contract matches Dev-C save_attachment emitter (confirmed via PM).
alee added 5 commits 2026-06-20 21:31:43 +00:00
Card/Key/Totp = CLI-only parity via shared item-build module; Document
adds org attachment storage + a relicario-server hook change that
grant-scopes attachment paths (closing the Unrestricted gap). Secrets
via interactive prompts + --*-stdin escape hatches. Four suggested dev
streams (A foundation, B Card/Key/Totp, C Document+attachments, D hook).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01L5JvzEse4xUxLZKhofyeCD
Dev-A shared item_build foundation + personal --*-stdin; Dev-B org
Card/Key/Totp; Dev-C org Document + attachment storage; Dev-D server
hook grant-scoping. TDD tasks with full code; A gates B/C, D independent.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01L5JvzEse4xUxLZKhofyeCD
org_audit.rs (B8 verified-signer test) + the two uncommitted org.rs diffs
(item-CRUD B9-B13, status/audit B8) from the wf_22020aea first-run worktrees.
All superseded by v0.8.0 main; also committed on the -r2 branches. Kept so
nothing is lost when the stale worktrees are removed.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01L5JvzEse4xUxLZKhofyeCD
4-stream manual-pane kickoff (no tmux automation): A foundation, B
Card/Key/Totp, C Document+attachments, D server hook. Each dev prompt
mandates a relay polling cadence (read inbox between every subagent;
HOLD/RESCOPE = interrupt) so PM directives are never missed. Gitea/git
merge mechanism; C<->D attachment-path coordination baked in.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01L5JvzEse4xUxLZKhofyeCD
alee closed this pull request 2026-06-27 17:11:09 +00:00
alee deleted branch feature/v0.8.1-dev-d-server-hook 2026-06-27 17:11:15 +00:00

Pull request closed

Sign in to join this conversation.
No Reviewers
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: alee/relicario#8