Documentation Index
Fetch the complete documentation index at: https://docs.qoder.com/llms.txt
Use this file to discover all available pages before exploring further.
Environment は Session が実行されるコンテナテンプレートを定義します — OS、ネットワークポリシー、プリインストール依存関係。シナリオごとに別々の Environment を作成できます。厳格に隔離されたセキュリティ監査用の環境、データサイエンスライブラリをプリインストールした分析環境、ネットワークが開放された汎用開発環境などです。
Environment とは
Environment は Session のインフラレイヤーです。
- コンテナタイプ — 現在は
cloud (クラウドホスト型コンテナ) のみサポート
- ネットワークポリシー — コンテナのアウトバウンドネットワークアクセスを制御
- 依存パッケージ — システムパッケージ、Python パッケージ、Node.js パッケージをプリインストール
各 Session は起動時に、指定された Environment テンプレートをもとに隔離された実行インスタンスを作成します。
フィールド説明
| フィールド | 型 | 必須 | 説明 |
|---|
id | string | — | システム生成、env_ プレフィックス |
name | string | はい | Environment 名 |
config | object | はい | Environment 構成 (タイプ、ネットワーク、パッケージ) |
config.type | string | はい | コンテナタイプ。現在は "cloud" 固定 |
config.networking | string/object | いいえ | ネットワークポリシー |
config.packages | object | いいえ | プリインストール依存パッケージ構成 |
status | string | — | Environment の状態: ready |
created_at | string | — | 作成時刻 |
updated_at | string | — | 最終更新時刻 |
デフォルト Environment
各アカウントには default という名のプリセット環境があり、構成は次のとおりです。
{
"id": "env_default",
"name": "default",
"config": {
"type": "cloud",
"networking": "unrestricted"
},
"status": "ready"
}
ほとんどのシナリオでは default Environment をそのまま使えば十分で、追加で作成する必要はありません。
default Environment は削除できませんが、特殊な要件がある場合は新たな Environment を作成して対応します。
ネットワークポリシー
config.networking は 3 つのモードをサポートします。"unrestricted" は文字列での指定が可能ですが、limited と allowlist はオブジェクト形式が必要です。
| モード | 値 | 説明 |
|---|
| 完全開放 | "unrestricted" | コンテナは任意の外部アドレスにアクセス可能 |
| 制限付き | {"type": "limited", "allow_package_managers": true} | 既知の安全なパブリックサービスとパッケージマネージャーへのアクセスのみ許可 |
| 許可リスト | {"type": "allowlist", "domains": [...]} | 指定ドメインのみアクセス許可 |
networking オブジェクトのフィールド
| フィールド | 型 | 説明 |
|---|
networking.type | string | ポリシー種別: unrestricted / limited / allowlist |
networking.allow_package_managers | boolean | limited モードで、パッケージマネージャー(pip / npm / apt など)のアクセスを許可するか |
networking.domains | array | allowlist モードでアクセスを許可するドメインのリスト |
完全開放
{
"config": {
"type": "cloud",
"networking": "unrestricted"
}
}
依存関係のダウンロードや外部 API アクセスが必要な汎用開発タスクに適します。
制限モード
{
"config": {
"type": "cloud",
"networking": {
"type": "limited",
"allow_package_managers": true
}
}
}
任意の外部ネットワークは不要だが、依存取得のためにパッケージマネージャーのアクセスが必要なタスクに適します。
許可リストモード
{
"config": {
"type": "cloud",
"networking": {
"type": "allowlist",
"domains": [
"api.github.com",
"registry.npmjs.org",
"pypi.org"
]
}
}
}
セキュリティコンプライアンス要件が厳しいシナリオで、アクセス可能な外部サービスを正確に制御します。
プリインストール依存関係
config.packages を通じて、コンテナ起動時にプリインストールする依存関係を指定します。
{
"config": {
"type": "cloud",
"networking": "unrestricted",
"packages": {
"apt": ["git", "build-essential", "libssl-dev"],
"pip": ["pandas", "numpy", "scikit-learn"],
"npm": ["typescript", "eslint", "prettier"]
}
}
}
| パッケージ管理 | フィールド | 説明 |
|---|
| apt | packages.apt | Debian/Ubuntu システムパッケージ |
| pip | packages.pip | Python パッケージ |
| npm | packages.npm | Node.js パッケージ (グローバルインストール) |
プリインストールパッケージは Environment 初期化時間を増やします。本当に必要なパッケージのみを追加し、その他は Session 実行時に都度インストールしてください。
Environment を作成する
# データサイエンス専用 Environment を作成
curl -s -X POST https://openapi.qoder.sh/api/v1/cloud/environments \
-H "Authorization: Bearer $QODER_PAT" \
-H "Content-Type: application/json" \
-d '{
"name": "data-science",
"config": {
"type": "cloud",
"networking": "unrestricted",
"packages": {
"apt": ["build-essential"],
"pip": ["pandas", "numpy", "matplotlib", "scikit-learn", "jupyter"]
}
}
}' | jq .
成功時は 201 Created:
{
"id": "env_ds456",
"name": "data-science",
"config": {
"type": "cloud",
"networking": "unrestricted",
"packages": {
"apt": ["build-essential"],
"pip": ["pandas", "numpy", "matplotlib", "scikit-learn", "jupyter"]
}
},
"status": "ready",
"created_at": "2026-05-18T10:00:00Z",
"updated_at": "2026-05-18T10:00:00Z"
}
セキュアな制限環境を作成する
# 内部 API へのアクセスのみを許可するセキュアな環境を作成
curl -s -X POST https://openapi.qoder.sh/api/v1/cloud/environments \
-H "Authorization: Bearer $QODER_PAT" \
-H "Content-Type: application/json" \
-d '{
"name": "secure-internal",
"config": {
"type": "cloud",
"networking": {
"type": "allowlist",
"domains": ["internal-api.mycompany.com", "git.mycompany.com"]
},
"packages": {
"apt": ["git", "curl"]
}
}
}' | jq .
Environment を取得する
# すべての Environment を一覧表示
curl -s https://openapi.qoder.sh/api/v1/cloud/environments \
-H "Authorization: Bearer $QODER_PAT"
# 単一 Environment の詳細を取得
curl -s https://openapi.qoder.sh/api/v1/cloud/environments/env_ds456 \
-H "Authorization: Bearer $QODER_PAT"
Environment を更新する
# 既存の Environment に新しい依存パッケージを追加
curl -s -X PUT https://openapi.qoder.sh/api/v1/cloud/environments/env_ds456 \
-H "Authorization: Bearer $QODER_PAT" \
-H "Content-Type: application/json" \
-d '{
"name": "data-science",
"config": {
"type": "cloud",
"networking": "unrestricted",
"packages": {
"apt": ["build-essential", "libpq-dev"],
"pip": ["pandas", "numpy", "matplotlib", "scikit-learn", "jupyter", "sqlalchemy"]
}
}
}' | jq .
Environment の更新は実行中の Session に影響しません。新しい構成は以降に作成される Session にのみ反映されます。
Environment を削除する
# カスタム Environment を削除
curl -s -X DELETE https://openapi.qoder.sh/api/v1/cloud/environments/env_ds456 \
-H "Authorization: Bearer $QODER_PAT"
Environment 選定の指針
| シナリオ | 推奨構成 |
|---|
| 汎用開発 | default 環境、追加構成不要 |
| データ分析 | pandas/numpy をプリインストール、ネットワーク開放 |
| セキュリティ監査 | 許可リストネットワーク、最小依存 |
| フロントエンド開発 | Node.js エコシステムをプリインストール、npm registry を開放 |
| CI/CD 統合 | git/docker CLI をプリインストール、許可リストモード |
よくある質問
Q: Environment 作成後、利用可能になるまでどのくらい待つ必要がありますか?
A: Environment は作成直後に状態が ready となり、すぐに Session 作成に利用できます。実際のコンテナ初期化 (依存インストールを含む) は Session 起動時に実施されます。
Q: プリインストールパッケージのバージョンは指定できますか?
A: pip と npm パッケージはバージョン指定をサポートします (例: "pandas==2.1.0" や "typescript@5.0.0")。apt パッケージはシステムリポジトリのデフォルトバージョンを使用します。
Q: networking の設定ミスで Agent 実行が失敗したら?
A: 新しい Environment を作成 (または既存を更新) し、ネットワークポリシーを修正してから Session を再起動してください。
Q: 1 アカウントで作成できる Environment の上限は?
A: ハードリミットはありませんが、実需に応じて作成し、管理が煩雑にならないようにしてください。命名規則による分類管理を推奨します。
次のステップ