RBAC boundary and legacy decision removal (BEP-1077 Phase 3)
- Dominant language
- Python
- Stars
- 670
- Forks
- 183
- Avg merge
- 17h 7m
- Merged PRs (30d)
- 358
Description
BEP-1077 (proposals/BEP-1077-project-scoped-ownership.md) Phase 3. 그래프를 만드는 조작(관계·소속·롤 부여·소속 초대)이 한 rbac 경계를 통해서만 일어나고, 권한 판정이 own/govern 마스크로만 답해지는 상태를 만든다.
완료 기준: 레지스트리·자원그룹 관계가 relation 액션(양쪽 스코프 검사)을 탄다. 프로젝트 소속이 초대를 거쳐 명부 등재 + 롤 배정으로 이루어지고 유저 VE 바인딩이 없다. permission_controller·idle_checker 2종에 재귀 CTE 판정 경로가 없다.
착수 조건 (열린 결정): ① rbac 경계를 서비스로 긋나 리포지토리/ops 로 긋나 ③ BA-7467 워크트리의 services/rbac 승계 여부 ④ 개인 프로젝트 멤버 금지를 ops 불변식으로 내릴지.
두 줄기 병렬: 판정-0 분석 → 판정-1(permission_controller)·판정-2(idle_checker) 발행. 관계-1 rbac 경계 → BA-7569 소속 초대 표 → BA-7570 소속 초대 플로우.
여기서 뺀 것: ASE 제거는 사용처 0 시점에 Phase 8, validator 테스트(BA-7442)는 Phase 9, BA-7467 자연키는 lookup 문제로 확인 후 재배치.
이슈 본문은 대상·완료 기준·제약·열린 결정만 적는다. 구현 방향은 착수 시점의 main 을 보고 정한다. 파일 위치는 2026-09-05 main 기준 참고. 분해: hejo drafts/bep1077-ownership/issues-v2.md
JIRA Issue: BA-7668
Contributor guide
Research direction
Start by reading proposals/BEP-1077-project-scoped-ownership.md and the current main branch, then inspect permission_controller, idle_checker, and the services/rbac area. Resolve the listed boundary, inheritance, and personal-project membership decisions before implementation. Done means relation actions enforce both scopes, invitations create membership and roles without user VE bindings, and neither checker uses recursive CTE decisions.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- authorization, backend
- Issue type
- Refactor
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Active
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100