# 프리뷰 보호

프로덕션 브랜치가 아닌 push는 프리뷰 주소로 배포돼요. 이 주소를 누가 열 수 있는지 정해요.

```
get_preview_protection   지금 설정, 보호 범위, 우회 키, 공유 링크
set_preview_protection   off | members | password
set_protection_scope     보호할 주소(previews | generated | all), 들일 IP, 통과시킬 경로
create_bypass_secret     우회 키 만들기 (한 번만 보임)
revoke_bypass_secret     우회 키 폐기
create_share_link        배포 하나나 브랜치 하나를 여는 링크 (1~30일)
revoke_share_link        공유 링크 폐기
```

- **members**: 콘솔에 로그인한 이 조직의 사람만. 새 프로젝트의 기본값이에요.
- **password**: 비밀번호 하나로. 계정 없는 고객에게 보여 줄 때.
- **off**: 주소를 아는 누구나.

프로덕션 주소와 연결한 도메인은 언제나 공개예요. 배포마다 붙는 `dpl-…` 주소는 프로덕션 빌드라도 보호돼요.

E2E 테스트처럼 로그인할 수 없는 곳에서는 `create_bypass_secret`으로 만든 우회 키를
`x-blackwall-protection-bypass` 헤더로 보내세요. AI가 자기가 배포한 프리뷰를 열어 확인할 때도 이 키를 써요.
`set_protection_scope`의 scope를 generated로 하면 프로덕션의 기본 주소까지, all이면 연결한 도메인까지 보호해요.

## 환경

프로덕션과 브랜치 프리뷰 말고 스테이징 같은 환경을 직접 만들 수 있어요. 자기 주소, 도메인, 환경 변수를 따로 가져요.

```
list_environments        프로덕션과 직접 만든 환경, 따라가는 브랜치, 주소, 도메인
create_environment       환경 만들기 (name, branch, auto_assign)
update_environment       따라가는 브랜치와 자동으로 받는지 바꾸기
remove_environment       환경 지우기 (confirm에 이름)
set_domain_environment   확인된 도메인을 환경에 연결
```

환경 변수는 `set_env_vars`의 target에 환경 이름을 넣어요. auto_assign이 false인 환경은 `promote_deployment`로만 바뀌어요. 소유자·관리자만 바꿀 수 있어요.

## 브랜치 미리보기

```
get_branch_previews   지금 설정 (branch_previews: true | false)
set_branch_previews   enabled: true | false
```

조직 전체 설정이에요. false면 프로덕션 브랜치(보통 main)에 들어온 것만 빌드하고, 브랜치 푸시는 배포 기록에 건너뜀으로 남아요. redeploy·직접 올린 배포·배포 훅은 그대로 빌드해요. 소유자·관리자만 바꿀 수 있어요.
REST는 `GET·PUT /v1/projects/<ref>/branch-previews {enabled}`, CLI는 `oneend deployments branch-previews [on|off]`, 콘솔은 조직 → 배포 정책 → 브랜치 미리보기예요.

---

https://end.blackall.ai/docs/previews?lang=ko
