Skip to content

feat: 워크스페이스 미지정 목록을 접근 권한 기준으로 축소 - #131

Merged
yessjun merged 1 commit into
mainfrom
feat/list-visibility-own-only
Sep 16, 2026
Merged

yessjun merged 1 commit into
mainfrom
feat/list-visibility-own-only

Conversation

@yessjun

@yessjun yessjun commented Sep 16, 2026

Copy link
Copy Markdown
Member

📝 작업내용

  • 워크스페이스 미지정 목록의 범위를 접근 권한 기준으로 축소 (VM, LLM 키, 도메인, GPU, 리소스 인벤토리)
  • 신청 목록은 미지정 시 본인이 낸 신청만 반환
  • 워크스페이스 지정 시 동작 유지
  • 지정한 목록에서 권한 없는 행은 종전대로 제한 행
  • API 명세 v0.79.0
  • 연산 개수와 스키마는 불변, 목록이 싣는 행만 변경
  • 판정을 ResourceAccessResolver.reachableIds 한 자리로 통합
  • PublishingService의 수기 사본 제거
  • 좁히기를 질의에 배치, 페이지 봉투와 실제 행의 불일치 방지
  • 공개 명세로 흘러가는 두 컨트롤러의 @Operation 설명을 새 규칙으로 정정

⭐️ 검증

  • mvn -Dspring.test.context.cache.maxSize=3 verify 1524건 통과
  • 종류별 한 쌍의 시험 추가 (미지정에서 부재, 워크스페이스 지정 시 제한 행으로 복귀)
  • 상시권이 미지정 목록에 행을 세우지 않음과 워크스페이스 전체 부여는 세움을 단언
  • 적대 검토 1건, 지적 열셋 처분

💬 리뷰 포인트

  • 부여 없는 워크스페이스 소유자가 미지정 목록에서 자기 워크스페이스 리소스를 보지 못하는 판정 (ResourceAccessResolver.reachableIds)

A list called without a workspaceId now answers "what do I hold": the
resources a grant opens, and the requests the caller filed. Naming a
workspace is unchanged and still carries every row it owns, limited ones
included, which is where a member learns a resource exists and whom to ask.
Standing rights stay out of it, so a workspace owner holding no grant reads
that row by naming the workspace.

The narrowing sits in the query rather than in a filter over the fetched
page, because the page envelope is counted from the same statement.
@yessjun
yessjun merged commit 90a7ef1 into main Sep 16, 2026
1 check passed
@yessjun
yessjun deleted the feat/list-visibility-own-only branch September 16, 2026 14:42
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant