86 lines
4 KiB
Markdown
86 lines
4 KiB
Markdown
# Milestone: 사용자 알림 전달
|
|
|
|
## 위치
|
|
|
|
- Roadmap: [ROADMAP.md](../../../ROADMAP.md)
|
|
- Phase: [PHASE.md](../PHASE.md)
|
|
|
|
## 목표
|
|
|
|
분석 완료, 수정 승인 대기와 검증 실패처럼 사용자의 확인이나 조치가 필요한 상태를 권한 있는 사용자에게 중복 없이 알린다. 알림에는 민감한 오류 원문이나 비밀값을 넣지 않고, 권한 검증이 적용되는 Ariadne 상세 화면으로 연결한다.
|
|
|
|
## 상태
|
|
|
|
[스케치]
|
|
|
|
## 승격 조건
|
|
|
|
- [ ] 첫 외부 알림 채널을 확정한다.
|
|
- [ ] 조직·프로젝트 권한과 명시적 구독을 결합한 수신자 규칙을 구현 가능한 수준으로 고정한다.
|
|
- [ ] 재시도·중복 방지와 민감 정보 제외 기준을 확정한다.
|
|
- [ ] SDD 사용자 리뷰를 해결하고 gate를 통과한다.
|
|
|
|
## 구현 잠금
|
|
|
|
- 상태: 잠금
|
|
- SDD: 필요
|
|
- SDD 문서: [SDD.md](../../../sdd/operator-experience/user-notification-delivery/SDD.md)
|
|
- SDD 사유: 외부 전달, 조직별 수신 권한, 민감 정보 제외, 재시도와 중복 방지를 다룬다.
|
|
- 잠금 해제 조건:
|
|
- [ ] SDD 잠금이 해제되어 있다.
|
|
- [ ] SDD 사용자 리뷰가 승인·해결되어 있다.
|
|
- [ ] Acceptance Scenario가 Milestone 기능 Task와 연결되어 있다.
|
|
- [ ] Evidence Map이 완료 시 검증 가능한 근거와 연결되어 있다.
|
|
- 결정 필요:
|
|
- [D01] 첫 외부 알림 채널
|
|
|
|
## 범위
|
|
|
|
- 분석 완료, 수정 승인 대기와 검증 실패 알림 사건
|
|
- 조직·프로젝트 권한과 명시적 구독 기반 수신자 선택
|
|
- 알림 발송 대기열과 재시도 가능한 전달 이력
|
|
- 민감 정보가 제거된 제목·요약과 Ariadne 상세 화면 연결
|
|
- 동일 사건·채널·수신자의 중복 발송 방지
|
|
- 첫 외부 알림 채널 어댑터
|
|
|
|
## 기능
|
|
|
|
### Epic: [policy] 알림 대상과 내용
|
|
|
|
알림을 받을 권한이 있고 명시적으로 구독한 사용자에게 필요한 최소 내용만 전달한다.
|
|
|
|
- [ ] [recipient-policy] 사건 시점의 조직·프로젝트 권한과 명시적 구독을 함께 검사해 수신자를 결정하고 권한을 잃은 사용자를 제외한다.
|
|
- [ ] [safe-message] 오류 원문·비밀값·접속 정보를 제외한 제목과 요약을 만들고 권한 검증이 적용되는 상세 화면 주소만 포함한다.
|
|
|
|
### Epic: [delivery] 멱등한 외부 전달
|
|
|
|
도메인 상태 변경과 외부 발송 사이의 유실과 중복을 방지한다.
|
|
|
|
- [ ] [notification-outbox] 분석 완료, 승인 대기와 검증 실패 전이를 같은 트랜잭션의 발송 대기 사건으로 저장한다.
|
|
- [ ] [channel-adapter] 선택한 첫 외부 채널로 발송하고 외부 식별자와 결과를 전달 이력에 기록한다.
|
|
- [ ] [delivery-retry] 같은 사건·채널·수신자의 멱등 키를 사용하고 제한된 재시도 뒤 표준 실패를 보존한다.
|
|
- [ ] [notification-smoke] 권한 변경, 구독 해제, 중복 사건, 일시 실패와 민감 정보 입력을 실제 채널에서 검증한다. 검증: 통합 검사와 알림 채널 field smoke가 통과한다.
|
|
|
|
## 완료 리뷰
|
|
|
|
- 상태: 없음
|
|
- 요청일: 없음
|
|
- 완료 근거: 없음
|
|
- 검토 항목: SDD gate, 수신 권한, 민감 정보 제외, 중복 방지와 채널 field smoke
|
|
- agent-ui 상태 반영: 해당 없음
|
|
- 리뷰 코멘트: 없음
|
|
|
|
## 범위 제외
|
|
|
|
- 여러 외부 채널 동시 지원
|
|
- 당직 호출과 장애 단계별 상향 통지
|
|
- 알림 본문에 오류 원문 또는 실행 로그 첨부
|
|
- 사용자 대신 승인·거부 수행
|
|
|
|
## 작업 컨텍스트
|
|
|
|
- 관련 경로: `internal/domain/`, `internal/integration/`, `internal/platform/database/`
|
|
- 표준선: 외부 알림은 최소 요약과 Ariadne 링크만 전달하고, 상세 정보 접근은 매 요청의 조직·프로젝트 권한으로 다시 검증한다.
|
|
- 선행 작업: [오류와 수정 작업 운영 화면](operator-console.md)
|
|
- 후속 작업: [병합 요청 전달](../../remediation-automation/milestones/merge-request-delivery.md)
|
|
- 확인 필요: [USER_REVIEW.md](../../../sdd/operator-experience/user-notification-delivery/USER_REVIEW.md)
|