Serve a force purge that deletes synchronously
- Dominant language
- Python
- Stars
- 670
- Forks
- 183
- Avg merge
- 17h 7m
- Merged PRs (30d)
- 358
Description
BEP-1069 §3.5. force 옵션을 받은 purge 는 지금처럼 동기로 지운다. 다섯 entity 에 연다.
### 왜 필요한가
status 가 purge-error 로 간 entity 는 거기서 나올 길이 없다. force purge 가 유일한 출구다. 그리고 정리를 기다릴 수 없는 운영 상황에서도 쓴다.
정리 진행 상태는 entity 마다 status enum 하나에 값으로 실린다 (domain/project/user 는 purging·purge-error, image 는 PURGING·PURGE_ERROR, vfolder 는 delete-ongoing·delete-error). BEP §3.1 이 말한 두 축 두 컬럼이 아니라 단일 enum 이다.
### 할 일
- purge 에 force 옵션을 받는다. 받으면 stage 를 돌리지 않고 지금의 동기 삭제 경로로 지운다.
- 동작 자체는 지금과 같다. 옮기는 것이지 바꾸는 것이 아니다.
- 다섯 entity (domain, project, user, image, vfolder) 에 연다.
### 순서
BEP §5 는 이것을 3단계로 두어 독립 작업으로 잡았으나, 실제로는 컨트롤러·코디네이터가 선 뒤에 붙이는 것이 맞다. force 가 아닌 경로가 무엇인지 정해져야 force 가 그것을 건너뛴다는 말이 성립한다.
### 의존
BA-7454 (컨트롤러·코디네이터 + domain 적용).
JIRA Issue: BA-7456
Contributor guide
Research direction
Start by locating the controller and coordinator entry points for domain, project, user, image, and vfolder, then compare the existing synchronous purge path with the non-force staging path. Done means force purge skips staging and synchronously deletes entities in all five paths, while non-force behavior remains unchanged.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- api, backend
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 52/100