lablup / lablup/backend.ai

Generalize the share processors over the target entity type

Open
#14,235 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
Python
Stars
670
Forks
183
Avg merge
17h 7m
Merged PRs (30d)
358

Description

공유·초대·회수·이전을 대상 엔티티 타입을 인자로 받는 processor 층으로 제공한다. 대상이 늘어도 배선만 추가하면 되는 구조.

대상

- share ops 6종(replace/widen/narrow/unshare/transfer/accept_invitation)은 이미 엔티티 무관이다. 그 위 액션·서비스·processor 층을 엔티티 무관으로 만든다. 동작: share, unshare, invite, answer(accept/reject), cancel, transfer, list(sent/received).

- 기존 services/entity_invitation 의 액션 4종(create/answer/get/search)을 이 층으로 흡수하거나 확장한다.

- 공유 가능 종류가 수신자 own-scope role 에 있는지 검사한다 (BEP 5.5: cap 은 좁히기만 하므로 없으면 아무것도 못 준다).

- 사람 대상 공유의 착지 스코프는 그 사람의 개인 프로젝트 (Phase 1, BA-7661 과 정합).

완료 기준

- vfolder 초대 대체(BA-7491)가 이 processor 층만으로 구현 가능하다. 새 대상 추가가 processor 배선 1건으로 끝난다.

제약

- 쓰기는 share ops 만. 초대·공유·회수는 entity_shares 한 표 (BA-7568 뒤).

참고 파일 (파일 위치는 2026-09-05 main 기준 참고. 구현 방향은 착수 시 main 을 보고 계획해 확인받은 뒤 진행한다.)

- repositories/ops/v2/share/write.py, services/entity_invitation/ (actions, service, processors), actions/v2/ (shape 선택: 대상 엔티티에 대한 single_entity 또는 relation)

JIRA Issue: BA-7666

Contributor guide

Open the contributing guide

Research direction

Start by reviewing repositories/ops/v2/share/write.py and the actions, service, and processors under services/entity_invitation/, then compare the relevant actions/v2 shapes on current main. Confirm the plan before implementation. Done means the vfolder invitation replacement works through this processor layer and adding another target requires only one processor wiring change.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
backend-api-design
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.