Generalize the share processors over the target entity type
- 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
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