Repository navigation
feat(session-mcp): drop_upload·drop_download — 공유 볼륨 ↔ drop 파일 전달 (SA 인증, 승인 게이트 예외) - #178
Merged
Merged
Conversation
dlddu
force-pushed
the
feat/session-mcp-drop
branch
from
November 1, 2026 09:08
e5b7590 to
127158e
Compare
헬퍼 파드의 세션 MCP 가 공유 볼륨의 파일을 같은 운영자의 클러스터 안 파일 전달 서비스 drop 으로 올리고(조각 API, 409 이어 올리기, 307 재전송) 받아 온다(os.Root 안에서 임시 파일 → renameat). 인자·결과에는 경로·메타데이터만 싣는다 — 파일 바이트가 MCP 도구 I/O 를 지나면 대화 컨텍스트를 태운다. 인증은 session-mcp 서비스 어카운트의 projected 토큰(audience drop)을 drop 이 drk_ 단기 키로 바꿔 주는 것이고, 토큰 볼륨은 세션 MCP 컨테이너에만 마운트한다. DROP_URL 이 비면 도구가 목록에 오르지 않는다. 사용자 결정(2026-11-01)으로 승인 게이트를 지나지 않는다 — 문서의 R1 예외 등재는 다음 커밋. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_018Xb2pEKVsNtfhXhHWKEjxU
- docs/prd/drop-file-share.md(AC-I1~I4)·docs/test/drop-file-share.md(시나리오 3) 신설. 파일 바이트는 MCP 인자·결과를 지나지 않는다(대화 컨텍스트) — AC-I1. - docs/session-mcp-tool-surface.md: 도구 7개, R1 의 넷째·다섯째 명시적 예외 (사용자 결정 2026-11-01 「승인 게이트 대상은 아니야」)와 그 네 조건, R9 의 C1~C4 대조, R11 의 dest 이탈 근거. approval-gated PRD 머리 성질·AC-F6 에 2026-11-01 확정 항목(C2 이탈 기록), minimax-code PRD V1 문장 정정. - kind SUT: deploy/e2e-drop.yaml(실물 drop, DROP_SHA 소스 빌드 — 발행 이미지는 arm64 전용, system:auth-delegator, SA_ALLOW=default/session-mcp), up.sh 빌드·대기, 오버레이가 env/17(DROP_URL)을 인클러스터 Service 로 바꾼다. - control-plane/test/e2e_drop_1_round_trip_test.go: 공유 볼륨 → drop → 공유 볼륨 왕복을 실 CLI 의 도구 호출로, 승인 마커 없이. e2e.md 유예 표에 대체 검증으로 등재. - doc-tracker 2026-11 월 파일, 허브 행. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_018Xb2pEKVsNtfhXhHWKEjxU
dlddu
force-pushed
the
feat/session-mcp-drop
branch
from
November 1, 2026 10:17
127158e to
e1b392b
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
요약
세션 MCP 에
drop_upload·drop_download를 더한다. 공유 볼륨 ↔ drop(dlddu/drop) 파일 전달을 헬퍼 파드가 자기 ServiceAccount(audiencedropprojected 토큰 → drop 의 TokenReview → 단기 키)로 수행한다. 게이트 세션의 워크로드 파드는 밖으로 나갈 수 없으므로(AC-F2), 에이전트는 공유 볼륨 경로만 넘긴다.docs/session-mcp-tool-surface.mdR1 예외 4·5 와 조건 넷(고정된 내부 엔드포인트 drop 하나, 헬퍼 자기 SA, 이미 공유 볼륨에 있는 파일만 나감, 받기는 볼륨 안에만 씀). AC-F6 C2 이탈을 명시 기록.DROP_URL미설정이면 도구 미노출. 프리뷰 네임스페이스는 dropSA_ALLOW밖이라 403 fail-closed.도구
drop_upload {paths[1..100], days?=7, id?, password?}→{id, password, url, files, bytes, expires_at}— 항상 조각 API(16MiB, 409 이어 올리기, 307 재전송), 디렉터리·볼륨 밖 경로·..·바깥 심볼릭 링크 거부drop_download {id, password, files?, dest?="drop/<id>", overwrite?=false}→{id, dest, files:[{name,path,size}], bytes, expires_at}—os.Root로 스트리밍, 이름 정화, 기존 파일 보존배선
WithDropURL: audiencedropprojected 토큰(/var/run/secrets/drop/token)과DROP_URL·DROP_TOKEN_FILE을 session-mcp 컨테이너에만k8s/deployment.yaml:DROP_URL=http://drop-external.drop.svc.cluster.local(env 끝에 추가, e2e overlay 는 index 17 patch)테스트
DROP_SHA소스 빌드, auth-delegator 바인딩,SA_ALLOW=default/session-mcp): 워크로드에 파일 →drop_upload→ drop 받기 API 확인 →drop_download→ 승인 마커 없음배포 전제
dlddu/drop#2(교환 엔드포인트,
SA_ALLOW에session-platform/session-mcp) · dlddu/flux-cd-apps#99(auth-delegator,drop-external).Generated by Claude Code