> ## Documentation Index
> Fetch the complete documentation index at: https://docs.devin.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# エアギャップ化された Devin のライセンスファイル

> エアギャップ化された Devin Desktop と CLI が起動時に検証するオフラインライセンスファイルのインストール、内容確認、更新方法に加え、想定されるキー ID と LIC エラーコードについて説明します。

> [!NOTE]
>
> このドキュメントは Devin の連邦政府向け導入環境を対象としています。[Devin ドキュメントに戻る](/ja/get-started/devin-intro)

エアギャップ化された Devin Desktop および Devin CLI の build では、クラウドへのログインは行いません。アクセスは**署名付きライセンスファイル**によって制御され、製品は起動するたびにこのファイルを完全にオフラインで検証します。各ライセンスはポータルからシート保有者 1 人に対して発行され、あなたの Team が持つエアギャップ環境向けエンタイトルメントのシートを 1 つ消費します。

## ライセンスの配置場所

| | |
| - | - |
| デフォルトのパス | `/etc/devin/license.devin-onprem-license` |
| デフォルトのパス (Windows) | `C:\ProgramData\Devin\license.devin-onprem-license` |
| 上書き設定 | `DEVIN_LICENSE_FILE=<path>` |

同梱の Desktop エージェントとスタンドアロンの CLI は、同じファイルを読み込みます。初回起動前にインストールしてください。詳しくは [インストール → ステップ 4](/ja/federal/air-gapped/install#step-4-place-the-license-and-models-file) を参照してください。Desktop ユーザーは Devin の設定からライセンスをインストールすることもできます。その場合、同梱のエージェントがファイルをオフラインで検証します。他のユーザーが所有するファイルは上書きせず、インストール時には `license_installed` 監査イベントを記録します。Windows では、ライセンスファイルの所有者が管理者の場合、標準ユーザーは Desktop からファイルを置き換えられません (インストールは `LIC001` で拒否されます)。置き換えられるのは管理者のみです。ファイルを配置する前に、[`C:\ProgramData\Devin\` へのアクセスを制限](/ja/federal/air-gapped/install#windows-lock-down-the-configuration-folder)してください。

## ポータルからライセンスを発行する

1. ポータルにサインインし、**Team** ページを開きます。**Air-gapped licenses** セクションには、使用中のシート数、エンタイトルメント期間、デフォルトのライセンス期間が表示されます。
2. **Generate license** をクリックします。
3. **ラベル** (例えばホスト名やユーザー名) 、**担当者のメールアドレス**、**期間 (日数) ** を入力します。期間の初期値はエンタイトルメントのデフォルト値で、エンタイトルメントの最大値とエンタイトルメント期間の終了日のいずれも超えることはできません。レビューのステップでは、有効期限の予定日が表示されます。
4. 確定します。ポータルに **License generated** と表示され、**Download license file** が利用可能になります。ダウンロードされるのは署名済みの `.devin-onprem-license` ファイルです。承認済みのメディア転送手順に従って、エアギャップ化されたホストに転送してください。

**Issued licenses** テーブルには、すべてのライセンスがステータス (**Active**、**Expiring soon**、**Expired**、**Revoked**) とともに一覧表示されます。アクティブなライセンスは、このテーブルから再ダウンロードできます。ライセンスの失効や再発行、およびすべてのシートが使用中になった場合のシートの解放は、サポートチームが対応します。

## ファイルの内容

このファイルは、コンパクト形式 (`header.payload.signature`) の単一の JSON Web Token で、EdDSA (Ed25519) で署名されています。ヘッダーの `kid` は、署名に使用された公開キーを示します。製品にはすべての環境の公開キーが同梱されているため、検証時に外部から何かを取得することはありません。クレームは次のとおりです。

| クレーム | 意味 |
| - | - |
| `license_id` | このライセンスの一意の ID |
| `account_id` | あなたのアカウント |
| `seat_label` | シート保有者 (通常はメールアドレス) |
| `iat` / `nbf` | 有効期間の開始 (Unix 秒) |
| `exp` | 有効期間の終了 (Unix 秒) |
| `product` | 常に `devin-onprem` |
| `entitlements` | エンタイトルメント文字列のリスト (空の場合もあります) |

検証では、`kid` で選択された組み込みキーによる署名、`nbf`/`exp` の有効期間 (前後それぞれ 24 時間のクロックスキューを許容) 、および `product` クレームがチェックされます。

## ライセンスを確認する

### キー ID をチェックする

JWT ヘッダーをデコードして `kid` を読み取ります。次のワンライナーは Linux と macOS の両方で動作します。macOS に同梱されている BSD 版の `base64` は、パディングのない入力を警告なしに切り捨ててしまうため、base64url を base64 に変換したうえでパディングを付加しています。

```sh theme={null}
h=$(cut -d. -f1 < /etc/devin/license.devin-onprem-license | tr '_-' '/+')
while [ $(( ${#h} % 4 )) -ne 0 ]; do h="$h="; done
printf '%s' "$h" | base64 -d | jq -r .kid
```

```text theme={null}
fedstart-key-1
```

期待される値:

| ポータル環境 | 期待される `kid` |
| - | - |
| FedStart 本番環境 (`windsurf.fedstart.com`) | `fedstart-key-1` |
| FedStart ステージング環境 | `fedstart-staging-key-1` |

`kid` が異なる場合や結果が空の場合は、そのファイルがこの製品向けに発行されたライセンスではないか、転送中に破損している可能性があります。

### シート、アカウント、有効期限をチェックする

`devin auth status` はライセンスが存在しない場合や無効な場合でも動作するため、問題の診断に利用できます。

```sh theme={null}
devin auth status
```

```text theme={null}
Air-gapped build: access is license-based.
  License file:  /etc/devin/license.devin-onprem-license
  Identity:      alice <alice@example.gov>
  Seat:          alice@example.gov
  Account:       acme
  Expires:       2027-03-01 (340 day(s) left)
```

`Identity` はローカルのアトリビューション用アイデンティティ (OS のユーザー名と `git config user.email` の組み合わせ) です。これは監査ログに記録され、ライセンスとは関係ありません。ファイルを検証できない場合は、最終行が `License:       INVALID — LIC00X: <reason>` になります。

`devin airgap doctor` の `license` チェックでも同じシート、アカウント、有効期限が表示され、有効期限まで 30 日を切ると `warn` に変わります。

## 起動時と再検証の動作

* CLI は起動のたびにライセンスを検証し、stderr に次の 1 行を出力します。

  ```text theme={null}
  Devin on-prem license: seat alice@example.gov (account acme), expires 2027-03-01. Local user: alice <alice@example.gov>.
  ```

  ライセンスの有効期限まで 30 日を切っている場合は、続けて `Warning: license expires in N day(s)` という行が出力されます。
* 長時間実行されるプロセス (Desktop にバンドルされたエージェントや CLI REPL) は、**新しいセッションまたはターンを開始する前に**ファイルを再検証します。再検証の頻度は最大で 1 時間に 1 回です。実行中の作業が中断されることはありません。
* 有効期限切れから 24 時間を超えたライセンスでは、新しいセッションやターンを開始できなくなります。Desktop では、チャットパネルに ACP エラー `-32019 license_invalid` が表示されます。`LIC00X` で示される具体的な原因は、**View → Output → Devin ACP** で確認できます。
* 検証の失敗はキャッシュされません。更新したファイルをインストールすれば、再起動しなくても次のターンから反映されます。
* ホストを修復できるよう、次のコマンドは有効なライセンスがなくても実行できます: `devin auth status`、`devin airgap doctor`、`devin doctor`、`devin diagnostics`、`devin models validate`、`devin version`。

## ライセンスを更新または差し替える

1. ポータルから、同じシート保有者向けに新しいライセンスを生成します (上記参照) 。そのシートがすでに使用中の場合は、先にサポートチームへ古いライセンスの失効を依頼してください。
2. 新しいファイルで `/etc/devin/license.devin-onprem-license` (または `DEVIN_LICENSE_FILE` で指定したパス) にある既存のファイルを上書きします。ファイルの所有者は Devin を実行するアカウントのままにするか、所有者を root にしたうえでそのアカウントに読み取り権限を付与してください。Windows でのデフォルトのパスは `C:\ProgramData\Devin\license.devin-onprem-license` です。管理者権限で開いたセッションからファイルを差し替えてください。
3. 確認します:

   ```sh theme={null}
   devin auth status | grep Expires
   ```

   ```text theme={null}
     Expires:       2028-03-01 (705 day(s) left)
   ```

再起動は不要です。新しいファイルは次のセッションまたはターンから読み込まれます。

## エラーコード

ライセンス関連の失敗はすべて `LIC00X: <message>` の形式で出力され、続けてチェック対象のパスとその上書き方法が表示されます。

| コード | 意味 | 対処方法 |
| - | - | - |
| `LIC001` | ライセンスファイルが存在しないか、読み取れない | デフォルトのパスにファイルを配置するか、`DEVIN_LICENSE_FILE` を設定してください。また、Devin を実行しているユーザーのファイル権限をチェックしてください |
| `LIC002` | ファイル形式が不正 (有効な EdDSA JWT ではない、またはヘッダーに `kid` がない) | ポータルからライセンスを再ダウンロードしてください。ファイルが改変されずにそのまま転送されていること (改行の追加、折り返し、エンコーディングの変更がないこと) を確認してください |
| `LIC003` | 署名の検証に失敗した | 署名後にペイロードが改変されています。ライセンスを再ダウンロードしてください |
| `LIC004` | 不明な `kid` (一致する埋め込み公開キーがない) | 上記の方法で `kid` をチェックしてください。ライセンスが別の環境で発行されたか、お使いの build がキーのローテーションより前のものです。現在のリリースをインストールしてください |
| `LIC005` | 24 時間の猶予期間を過ぎて期限切れになっている | ライセンスを更新してください |
| `LIC006` | まだ有効期間に入っていない (発行日時が 24 時間以上先になっている) | ホストの時刻をチェックしてください。時刻が正しい場合は、サポートチームにお問い合わせください |
| `LIC007` | `product` クレームが不正 (`devin-onprem` ではない) | このファイルはエアギャップ化された Devin 用のライセンスではありません。ポータルから再ダウンロードしてください |

すべての名前空間を網羅したエラーコードのカタログは、[エラーコード](/ja/federal/air-gapped/error-codes) を参照してください。


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.