# プレビューの保護

本番ブランチ以外への 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つかブランチ1つを開くリンク（1〜30日）
revoke_share_link        共有リンクを廃止
```

- **members**: コンソールにログインしている、この組織の人だけ。新しいプロジェクトの既定値です。
- **password**: 1つのパスワードで。アカウントのないお客様に見せるときに。
- **off**: アドレスを知っている人なら誰でも。

本番アドレスと接続したドメインは常に公開です。デプロイごとに付く `dpl-…` アドレスは、本番ビルドでも保護されます。

E2E テストのようにログインできない場所では、`create_bypass_secret` で作ったバイパスキーを
`x-blackwall-protection-bypass` ヘッダーで送ってください。アシスタントが自分でデプロイしたプレビューを確かめるときも、このキーを使います。
`set_protection_scope` の scope を generated にすると本番の既定アドレスまで、all にすると接続したドメインまで保護します。

## 環境

本番とブランチプレビューのほかに、staging のような環境を自分で作れます。自分のアドレス、ドメイン、環境変数を別に持ちます。

```
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) に入ったものだけをビルドし、ブランチへのプッシュはデプロイ履歴にスキップとして残ります。再デプロイ、直接アップロードしたデプロイ、デプロイフックは通常どおりビルドします。変更できるのはオーナーと管理者だけです。
REST は `GET·PUT /v1/projects/<ref>/branch-previews {enabled}`、CLI は `oneend deployments branch-previews [on|off]`、コンソールは 組織 → デプロイポリシー → ブランチプレビュー です。

---

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