メインコンテンツへスキップ

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 テンプレートをもとに隔離された実行インスタンスを作成します。

フィールド説明

フィールド必須説明
idstringシステム生成、env_ プレフィックス
namestringはいEnvironment 名
configobjectはいEnvironment 構成 (タイプ、ネットワーク、パッケージ)
config.typestringはいコンテナタイプ。現在は "cloud" 固定
config.networkingstring/objectいいえネットワークポリシー
config.packagesobjectいいえプリインストール依存パッケージ構成
statusstringEnvironment の状態: ready
created_atstring作成時刻
updated_atstring最終更新時刻

デフォルト Environment

各アカウントには default という名のプリセット環境があり、構成は次のとおりです。
{
  "id": "env_default",
  "name": "default",
  "config": {
    "type": "cloud",
    "networking": "unrestricted"
  },
  "status": "ready"
}
ほとんどのシナリオでは default Environment をそのまま使えば十分で、追加で作成する必要はありません。
default Environment は削除できませんが、特殊な要件がある場合は新たな Environment を作成して対応します。

ネットワークポリシー

config.networking は 3 つのモードをサポートします。"unrestricted" は文字列での指定が可能ですが、limitedallowlist はオブジェクト形式が必要です。
モード説明
完全開放"unrestricted"コンテナは任意の外部アドレスにアクセス可能
制限付き{"type": "limited", "allow_package_managers": true}既知の安全なパブリックサービスとパッケージマネージャーへのアクセスのみ許可
許可リスト{"type": "allowlist", "domains": [...]}指定ドメインのみアクセス許可

networking オブジェクトのフィールド

フィールド説明
networking.typestringポリシー種別: unrestricted / limited / allowlist
networking.allow_package_managersbooleanlimited モードで、パッケージマネージャー(pip / npm / apt など)のアクセスを許可するか
networking.domainsarrayallowlist モードでアクセスを許可するドメインのリスト

完全開放

{
  "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"]
    }
  }
}
パッケージ管理フィールド説明
aptpackages.aptDebian/Ubuntu システムパッケージ
pippackages.pipPython パッケージ
npmpackages.npmNode.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: ハードリミットはありませんが、実需に応じて作成し、管理が煩雑にならないようにしてください。命名規則による分類管理を推奨します。

次のステップ