---
ui_doc_type: component
component_id: jenkins-credential-panel
status: 구현됨
source_evidence:
  - type: code
    path: lib/src/features/settings/settings_page.dart
    notes: "Jenkins card와 _WebLoginSection"
  - type: docs
    path: agent-roadmap/phase/security-distribution/milestones/auth-broker-evaluation.md
    notes: "사용자별 token과 WebView token 자동화 검토 맥락"
  - type: user
    path: null
    notes: "agent-ui 생성 요청"
---

# Jenkins Credential Panel

Component ID: `jenkins-credential-panel`

Status: `구현됨`

## Source Evidence

| Type | Path | Notes |
|------|------|-------|
| code | `lib/src/features/settings/settings_page.dart` | Jenkins card와 `_WebLoginSection` |
| docs | `agent-roadmap/phase/security-distribution/milestones/auth-broker-evaluation.md` | 사용자별 token과 WebView token 자동화 검토 맥락 |
| user | 없음 | agent-ui 생성 요청 |

## Purpose

Jenkins base URL과 credential lifecycle action을 한 카드 안에서 관리한다.

## Used By

- `settings`: `settings.jenkins-card`
- `settings`: `settings.web-login-controls`

## Anatomy

- Jenkins section title
- Base URL field with validation
- default job field
- auth mode segmented control
- Web Login button
- Credential 삭제 button
- loading indicators
- token/login/clear success labels
- error labels

## Variants

- default: Web Login mode
- busy: login/token save/session clear 진행 중
- error: login/token save/session clear error
- saved: token 저장 완료
- cleared: credential 삭제 완료

## States

- default
- loading
- empty
- error
- disabled

## Rules

- Web Login action은 base URL이 valid http/https이고 busy 상태가 아닐 때만 활성화한다.
- credential 삭제는 session clearer가 있고 busy 상태가 아닐 때만 활성화한다.
- token 값이나 credential 원문은 UI definition이나 tracked 문서에 기록하지 않는다.

## Decision History

- 2026-06-25: Jenkins credential 카드와 Web Login controls를 component로 기록했다.
