question(policy): define HTTP caller authority and MCP administrative-delete policy
Maintainers usually reply within 1 day
Nobody has claimed this yet.
Assessment
- Difficulty
- 5/5
- Estimated time
- Over a week
- Newbie friendliness
- 25/100
- Issue type
- Documentation
- Clarity
- Mostly clear
- Activity status
- Active
- Tech stack
- go
- Domain
- authorization, backend
Research direction
Start with the two review threads on PR #1575 and the baseline sources they cite: internal/server/server.go (route policy around L438) and internal/mcp/mcp.go (administrative deletion around L1852), plus the delete contract in DOCS.md L1074-1083. Map the existing HTTP bearer-token check and the MCP update-context checks against what mem_delete currently skips. Done looks like a maintainer-written decision stating trust model per transport, authority provenance and error precedence, cross-project deletion semantics, and named regression tests — no code yet.
Written by the indexing model from the issue text.
Description
Question
What should establish caller authority for observation mutations across local HTTP and native MCP, independently of a caller-supplied owner assertion?
Please define the supported trust model for each transport, the source of any project-level grants, and whether administrative mem_delete may intentionally target an explicitly asserted owner independently of cwd/process context. This is a policy decision request, not a proposal to treat expected_project or a detected cwd as an authenticated tenant identity.
Why does this need issue tracking?
Review of #1575 raised two related authority/policy questions. Comparing baseline 58d7029d1b1a50716c397ed49a377444c1f68add with reviewed head 4467678a0d94b6080f68c9f8dc113c58f3238ca4 confirms both boundaries predate that PR:
- Local HTTP has an optional instance-wide bearer token and a loopback/Unix-socket listener, not authenticated project grants. PATCH is unwrapped by the token check; DELETE uses it. Loopback does not imply isolation from every local client.
- MCP update already checks current/process project and session directory, while ID-based administrative deletion does not perform the same contextual checks. Those process-context checks are not authenticated tenant principals.
A durable maintainer decision is needed before adding authorization machinery or changing administrative deletion semantics. The decision should specify supported callers/exposure, authority provenance and error precedence per transport, intentional cross-project maintenance behavior, compatibility/migration requirements, and named regression tests. Prefer one coherent authority policy with explicit transport boundaries, not parallel representations of ownership.
No authority model, implementation or approval is selected by opening this issue. The ownership-consistency guard in #1575 remains separate from tenant isolation.
Affected Area
Project workflow or policy
Additional Context
- Origin: #1569 and #1575.
expected_projectis an explicit intended-owner consistency assertion, not authentication or tenant isolation. - HTTP review: https://github.com/Gentleman-Programming/engram/pull/1575#discussion_r4141210797
- Outside-diff MCP review: https://github.com/Gentleman-Programming/engram/pull/1575#pullrequestreview-5361982429
- Baseline HTTP route policy: https://github.com/Gentleman-Programming/engram/blob/58d7029d1b1a50716c397ed49a377444c1f68add/internal/server/server.go#L438-L439
- Baseline MCP administrative deletion: https://github.com/Gentleman-Programming/engram/blob/58d7029d1b1a50716c397ed49a377444c1f68add/internal/mcp/mcp.go#L1852-L1869
- Specific baseline delete contract: https://github.com/Gentleman-Programming/engram/blob/58d7029d1b1a50716c397ed49a377444c1f68add/DOCS.md#L1074-L1083
- Related but distinct work: #200 (global HTTP token), #1111 (project-merge HTTP authentication parity), #1348 (agent/admin tool profiles), #1347 (MCP/Pi contract parity), #1532 (remote MCP transport).
Existing focused store/server owner-assertion tests and MCP update-context tests pass. They do not prove malicious-client isolation or a delete-context denial policy. No source changes, new security fixtures or exploit reproduction are included in this tracking request.
- Dominant language
- Go
- Stars
- 7.1k
- Forks
- 729
- Avg merge
- 10h 43m
- Merged PRs (30d)
- 332
Getting set up
Starts the project's dev container in your browser, under your own GitHub account.
- No Dockerfile or Docker Compose file
- Has a pull request template
- Read the contributing guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from Gentleman-Programming/engram
-
status:needs-review type:bug
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
Gentleman-Programming/engram#1687 ·
Maintainers usually reply within 1 day
-
priority:medium status:needs-review type:feature
Difficulty 2/5 1-3 hours Newbie friendliness 80/100
Gentleman-Programming/engram#863 · 1 comment ·
Maintainers usually reply within 1 day
-
question(sync): isolate enrolled-repair writer blocking in a reproducible fixturePossibly taken @dnlrsls claimed this today. Openstatus:approved type:question
Gentleman-Programming/engram#1913 · 3 comments · 1 assignee ·
Maintainers usually reply within 1 day
-
status:needs-review type:bug
Difficulty 4/5 3-5 days Newbie friendliness 12/100
Gentleman-Programming/engram#1912 ·
Maintainers usually reply within 1 day
-
status:needs-review type:bug
Difficulty 5/5 Over a week Newbie friendliness 15/100
Gentleman-Programming/engram#1911 ·
Maintainers usually reply within 1 day
All issues in Gentleman-Programming/engram
Similar issues
-
clawsweeper:fix-shape-clear clawsweeper:queueable-fix clawsweeper:source-repro impact:session-state issue-rating: 🦞 diamond lobster no-stale P2
Difficulty 2/5 1-3 hours Newbie friendliness 74/100
openclaw/wacli#503 · 1 comment · 1 reaction ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 81/100
apache/rocketmq-dashboard#6895 ·
Maintainers usually reply within 3 days
-
agent-butler-finding chore
Difficulty 1/5 Under an hour Newbie friendliness 88/100
jordansmall/spindrift#5466 ·
Maintainers usually reply within 1 day
-
Difficulty 1/5 Under an hour Newbie friendliness 92/100
open-telemetry/opentelemetry-go-compile-instrumentation#1507 ·
Maintainers usually reply within 3 days
-
Difficulty 1/5 Under an hour Newbie friendliness 87/100
777genius/agent-notifications#490 ·
Maintainers usually reply within 1 day