# ドメインとエッジ

```
list_domains          接続したドメイン、確認状態、証明書
add_domain            接続 （target: site | api, branch, pair_www, *.example.com）
remove_domain         接続を解除
set_domain_redirect   別のドメインへ転送 / 再びサイトを開く
move_domain                 ドメインを所有確認・証明書ごと同じ組織の別プロジェクトへ移す（TXT の再設定不要）
get_edge              ファイアウォールとリクエスト上限を見る
set_edge              IP のブロック・許可、1分あたりのリクエスト上限、範囲（all | site | api）
purge_edge_cache      エッジに保存されたレスポンスを破棄
get_network           受信アドレス（A レコード）、固定アウトバウンド IP
set_static_outbound_ip 固定アウトバウンド IP のオン・オフ（有料、Pro 以上）
```

- 接続した後、返ってきた TXT レコード（_blackwall.<ドメイン>）を DNS に入れると確認されます。トラフィックはその後 A レコードで移します。
- target=api のドメインは、<ref>.<zone> とまったく同じように、データ、認証、ストレージ、リアルタイムに応答します。
- `set_domain_redirect` の to はドメイン、またはドメインとパスです（REST: `PUT /v1/projects/<ref>/domains/<ドメイン>/redirect {to, status}`）。パスを付けると、アクセスしたパスがその後ろに付き、クエリ文字列もそのまま引き継がれます: to=example.com/vision なら vision.example.com/x?y=1 → example.com/vision/x?y=1、トップページは example.com/vision。ステータスコードは 308（既定）・307・301・302。to のドメインは、このプロジェクトに接続した、リダイレクトではないドメインである必要があります。
- 証明書は最初のアクセス時に自動で取得します。手元にある証明書は `upload_certificate`（PEM チェーンと秘密鍵）でアップロードし、`remove_certificate` で自動発行に戻せます。オーナーと管理者だけが実行できます。
- エッジキャッシュは、サーバーのデプロイが `Cache-Control: s-maxage=N` で許可したレスポンスだけを保存します。
- A レコードに設定するアドレスは `get_network` の inbound です。
- サーバーのデプロイ、関数の fetch()、データベース Webhook が外部へ送るリクエストのアドレスは、既定では**固定されていない共有アドレスで、予告なく変わることがあります。** 許可リストには追加しないでください。決済代行会社やデータベースのファイアウォールのように許可リストが必要な場合は、有料オプションの固定アウトバウンド IP を `set_static_outbound_ip` でオンにし（Pro 以上、オーナー・管理者・請求担当者）、`get_network` の outbound.addresses をすべて登録してください。このアドレスを変えるときは30日前にメールでお知らせします。

## ファイアウォールのルール

ルールは下書きにたまり、`publish_firewall` で公開すると適用されます。攻撃チャレンジモードだけはすぐ適用されます。

```
get_firewall                下書き、公開中のバージョン、変わる点（changes）、攻撃モード、バージョン履歴
save_firewall_rule          ルールを保存（groups: 条件のグループ、action: deny | challenge | rate_limit など）
move_firewall_rule          ルールの順番（up | down）
set_firewall_rule_enabled   ルールのオン・オフ
remove_firewall_rule        ルールを削除
set_firewall_managed        ボット、AI 学習クローラー、AI 検索・回答ボット、攻撃パターン（off | log | deny）
publish_firewall            下書きを新しいバージョンとして公開
reset_firewall_draft        公開していない変更を捨てる
restore_firewall_version    前のバージョンを下書きに読み込む
set_attack_mode             攻撃チャレンジモード（hours の後に自動でオフ）
```

オーナーと管理者だけが変更できます。ルールの編集は無料プランにはありません。

## ルーティングルール、一括リダイレクト、スキュー保護

```
get_routing_rules           コンソールで設定したリダイレクト・リライト・ヘッダーのルールのバージョン
save_routing_rules          blackwall.json の形のルールを新しいバージョンとして保存・適用
activate_routing_rules      前のバージョンを適用、null ならオフ
get_bulk_redirects          アップロードした一括リダイレクトのバージョンと最初の100行
upload_bulk_redirects       CSV で新しいバージョンをアップロード（1万行、activate）
activate_bulk_redirects     バージョンを1つ適用、null ならオフ
purge_edge_cache_item       パス1つ（/blog/*）か Cache-Tag 1つだけをキャッシュから捨てる
get_skew_protection         スキュー保護と最大保持期間
set_skew_protection         スキュー保護のオン・オフ、最大保持期間
```

ルーティングルールは各デプロイの blackwall.json より先に適用されます。変更はオーナーと管理者だけ、キャッシュの一部の消去は開発者以上が実行できます。

---

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