lablup / lablup/backend.ai

Serve the vfolder invitation through the entity invitation

Closed
#13,979 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
Python
Stars
670
Forks
183
Avg merge
15h 13m
Merged PRs (30d)
368

Description

BEP-1077 Phase 2 (BA-7664). vfolder 전용 초대 표·서비스를 일반화된 공유 processor 층(BA-7666) 위로 갈아끼운다. 2026-09-05 재서술. 이전 본문의 grant_entities·named cap 전제는 BA-7593 으로 폐기됨.

대상

- VFolderInviteService 의 9개 동작(invite, accept, reject, update, list, leave, revoke, 마운트 권한 변경, sent 목록)이 vfolder 전용 표 대신 entity_shares 초대를 쓴다. 수락은 accept_invitation → widen_share (넓히기만).

- vfolder 는 target_entity_type=vfolder, target_entity_id 로 간다. invitee 는 invitee_email, state 는 status 로 값이 같다. pending 유일 인덱스가 vfolder 의 의미를 그대로 담는다.

- REST 초대 경로의 응답 모양이 바뀌면 무엇이 바뀌는지 PR 에 적는다.

완료 기준

- vfolder 초대 경로에 VFolderInvitationRow 원시 insert/update 가 없다. 초대 수락 시 share 그래프 행이 생긴다 (cap 은 BA-7665 의 비트 대응).

제약

- 기존 대기 초대 행 이관은 BA-7571. 레거시 표는 그때까지 읽기 호환.

- 순서: BA-7568 개명 → BA-7665 cap 대응 → BA-7666 processor 일반화 → 이 이슈.

열린 결정

- vfolder 는 초대자를 이메일 문자열로 저장하는데 entity_shares 의 inviter_user_id 는 NOT NULL. 이메일로 사용자를 못 찾는 기존 행의 처분.

참고 파일 (2026-09-05 main 기준, 구현 방향은 착수 시 확인)

- services/vfolder/services/invite.py:65-300, services/vfolder/actions/invite.py, repositories/vfolder/repository.py:1277-1500 (초대 CRUD 10개 메서드), api/rest/vfolder/handler.py 초대 경로, models/vfolder/row.py VFolderInvitationRow

JIRA Issue: BA-7491

Contributor guide

Open the contributing guide

Research direction

Start by reading services/vfolder/services/invite.py:65-300, services/vfolder/actions/invite.py, and repositories/vfolder/repository.py:1277-1500 to map the existing invitation operations. Then inspect api/rest/vfolder/handler.py and models/vfolder/row.py, along with the entity_shares processor work named in BA-7665 and BA-7666. Done means the vfolder invitation path uses entity_shares without raw VFolderInvitationRow writes, acceptance creates share-graph rows, and REST response changes are documented.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
api, backend, databases
Issue type
Refactor
Difficulty
5/5
Estimated time
Over a week
Activity status
Active
Clarity
Needs clarification
Newbie friendliness
30/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.