# Milestone: Auth Broker와 Jenkins Plugin 후보 검토

## 위치

- Roadmap: `agent-roadmap/ROADMAP.md`
- Phase: `agent-roadmap/phase/security-distribution/PHASE.md`

## 목표

Jenkins LDAP 로그인 이후 영역에서 앱 사용 권한을 매끄럽게 확인하는 구조를 검토한다. 사용자별 token 방식이 충분하지 않을 때, Auth Broker 또는 Jenkins plugin으로 앱 전용 short-lived token/callback을 제공할지 판단한다.

## 상태

[스케치]

## 승격 조건

- [ ] Jenkins 운영팀이 plugin 설치 또는 reverse proxy 경로 추가 가능 여부를 답했다.
- [ ] 보안팀이 WebView token 자동화, Auth Broker, Jenkins plugin 중 허용 가능한 후보를 제시했다.
- [ ] MVP에서 사용자별 API token 방식의 UX/보안 문제가 실제로 충분히 커졌는지 확인했다.
- [ ] 구현 후보를 하나 이하로 좁히고, 후속 `[계획]` Milestone으로 분리했다.

## 구현 잠금

- 상태: 잠금
- 잠금 해제 조건: 사용자 리뷰에서 아래 항목을 승인하거나 방향을 결정할 때까지 Auth Broker 또는 Jenkins plugin 구현을 시작하지 않는다.
- 결정 필요: 사용자 리뷰 체크리스트
  - [ ] 별도 서버를 구축할 수 있는지 결정한다.
  - [ ] Jenkins plugin 설치가 가능한지 결정한다.
  - [ ] 앱이 Jenkins WebView에 비밀번호를 입력받는 방식이 허용되는지 결정한다.

## 범위

- 사용자별 API token 방식의 한계 검토
- WebView token 자동 발급의 보안/UX 검토
- Auth Broker 구조 검토
- Jenkins plugin callback 구조 검토
- 감사 로그와 short-lived token 후보 정리

## 기능

### Epic: [options] 인증 구조 후보

LDAP을 직접 제어하지 못하는 제약 안에서 가능한 인증 후보를 비교한다.

- [ ] [user-token] 사용자별 Jenkins API token 방식의 UX와 보안 리스크를 정리한다.
- [ ] [webview-token] Jenkins WebView 로그인 후 token 자동 발급 방식의 장단점을 정리한다.
- [ ] [broker] Auth Broker가 필요한 경우의 server/API/token 책임 경계를 정리한다.
- [ ] [plugin] Jenkins plugin endpoint가 제공할 callback/code/token 흐름을 정리한다.

### Epic: [decision] 승격 판단

스케치를 구현 가능한 계획으로 승격할 조건을 만든다.

- [ ] [security-review] 보안팀 리뷰 질문 목록을 작성한다.
- [ ] [ops-review] Jenkins 운영팀 리뷰 질문 목록을 작성한다.
- [ ] [roi-check] 별도 서버/plugin의 비용이 UX 개선 효과를 넘는지 판단 기준을 만든다.
- [ ] [next-milestone] 선택된 후보를 후속 `[계획]` Milestone으로 분리한다.

## 완료 리뷰

- 상태: 없음
- 요청일: 없음
- 완료 근거: 모든 기능 Task와 Task 안에 명시된 검증 충족 후 기록한다.
- 리뷰 필요:
  - [ ] 사용자가 완료 결과를 확인했다
  - [ ] archive 이동을 승인했다
- 리뷰 코멘트: 없음

## 범위 제외

- LDAP 직접 연동
- 공용 Jenkins token 내장
- 사용자가 결정하지 않은 서버/plugin 구현 착수

## 작업 컨텍스트

- 관련 경로: `lib/src/features/settings/`, `lib/src/services/token_store.dart`, `agent-roadmap/phase/security-distribution/`
- 표준선(선택): MVP는 사용자별 credential을 기본으로 두고, broker/plugin은 필요성이 검증될 때만 승격한다.
- 선행 작업: Jenkins 로그인과 credential 수명주기, macOS 배포와 sandbox 검증
- 후속 작업: 선택된 인증 구조의 별도 계획 Milestone
- 확인 필요: 구현 잠금의 사용자 리뷰 체크리스트가 Jenkins 운영 정책, 보안팀 허용 범위, 별도 서버 구축 가능성을 다룬다.
