---
ui_doc_type: view
view_id: jenkins-web-login
status: 구현됨
frame: null
source_evidence:
  - type: code
    path: lib/src/features/settings/jenkins_web_login_page.dart
    notes: "JenkinsWebLoginPage, AppBar, WebViewWidget, error overlay"
  - type: docs
    path: agent-roadmap/phase/security-distribution/milestones/auth-broker-evaluation.md
    notes: "WebView 로그인 후 token 자동 발급 후보 검토"
  - type: user
    path: null
    notes: "agent-ui 생성 요청"
regions:
  - jenkins-web-login.app-bar
  - jenkins-web-login.webview
  - jenkins-web-login.error-overlay
---

# Jenkins Web Login

View ID: `jenkins-web-login`

Frame:
- 없음

Status: `구현됨`

## Source Evidence

| Type | Path | Notes |
|------|------|-------|
| code | `lib/src/features/settings/jenkins_web_login_page.dart` | `JenkinsWebLoginPage`, `AppBar`, `WebViewWidget`, error overlay |
| docs | `agent-roadmap/phase/security-distribution/milestones/auth-broker-evaluation.md` | WebView 로그인 후 token 자동 발급 후보 검토 |
| user | 없음 | agent-ui 생성 요청 |

## Purpose

Jenkins 로그인 페이지를 fullscreen WebView로 열고, 로그인 확인 및 API token bridge를 진행한다.

## Primary Users

- Jenkins credential을 앱에 저장하기 위해 Web Login을 수행하는 사용자

## Primary Tasks

- Jenkins 로그인 WebView에서 인증을 완료한다.
- 로딩/token issue 진행 상태를 확인한다.
- 오류 발생 시 reload를 시도하거나 dialog를 닫는다.

## Information Priority

1. Jenkins 로그인 WebView
2. AppBar title/close action과 loading/token issue indicator
3. error overlay와 retry action

## Regions

| Region ID | Purpose | Component | Priority | Notes |
|-----------|---------|-----------|----------|-------|
| `jenkins-web-login.app-bar` | dialog title, close action, loading indicator | 없음 | high | `Jenkins 로그인` |
| `jenkins-web-login.webview` | Jenkins login page 표시와 JS bridge 실행 | 없음 | high | `WebViewWidget` |
| `jenkins-web-login.error-overlay` | page/probe/token 오류와 retry action | 없음 | high | `_errorMessage`가 있을 때 표시 |

## Actions

| Action ID | Trigger | Result | Guard |
|-----------|---------|--------|-------|
| `jenkins-web-login.close` | AppBar close icon | dialog 종료 | 없음 |
| `jenkins-web-login.reload` | 다시 시도 button | error message를 지우고 WebView reload | error message 있음 |
| `jenkins-web-login.complete-token` | 내부 token bridge 성공 | result를 settings page로 반환 | Jenkins user/token 확인 완료 |

## States

- loading: page load 또는 token issue 중 AppBar indicator를 표시한다.
- empty: 해당 없음.
- error: error overlay와 다시 시도 action을 표시한다.
- permission-denied: Jenkins 로그인 실패/anonymous 상태는 error 또는 WebView 인증 화면으로 남는다.

## Open Questions

- 없음

## Decision History

- 2026-06-25: fullscreen Jenkins WebView login dialog를 별도 view로 기록했다.
