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

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.networkingobjectいいえネットワークポリシー。オブジェクト形式必須。許可される値: {"type": "unrestricted" | "limited" | "allowed_hosts"}
config.packagesobjectいいえプリインストール依存パッケージ構成
statusstringEnvironment の状態: ready
created_atstring作成時刻
updated_atstring最終更新時刻

ネットワークポリシー

config.networking は 3 つのモードをサポートします。いずれもオブジェクト形式の指定が必須です("unrestricted" のような文字列の省略形は受け付けられず、400 が返ります)。
モード説明
完全開放{"type": "unrestricted"}コンテナは任意の外部アドレスにアクセス可能
制限付き{"type": "limited", "allow_package_managers": true}既知の安全なパブリックサービスとパッケージマネージャーへのアクセスのみ許可
許可リスト{"type": "allowed_hosts", "allowed_hosts": [...]}指定ホスト名のみアクセス許可

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

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

完全開放

{
  "config": {
    "type": "cloud",
    "networking": {"type": "unrestricted"}
  }
}
依存関係のダウンロードや外部 API アクセスが必要な汎用開発タスクに適します。

制限モード

{
  "config": {
    "type": "cloud",
    "networking": {
      "type": "limited",
      "allow_package_managers": true
    }
  }
}
任意の外部ネットワークは不要だが、依存取得のためにパッケージマネージャーのアクセスが必要なタスクに適します。

許可リストモード

{
  "config": {
    "type": "cloud",
    "networking": {
      "type": "allowed_hosts",
      "allowed_hosts": [
        "api.github.com",
        "registry.npmjs.org",
        "pypi.org"
      ]
    }
  }
}
セキュリティコンプライアンス要件が厳しいシナリオで、アクセス可能な外部サービスを正確に制御します。

プリインストール依存関係

config.packages を通じて、コンテナ起動時にプリインストールする依存関係を指定します。
{
  "config": {
    "type": "cloud",
    "networking": {"type": "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://api.qoder.com/api/v1/cloud/environments \
  -H "Authorization: Bearer $QODER_PAT" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "data-science",
    "config": {
      "type": "cloud",
      "networking": {"type": "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": {"type": "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://api.qoder.com/api/v1/cloud/environments \
  -H "Authorization: Bearer $QODER_PAT" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "secure-internal",
    "config": {
      "type": "cloud",
      "networking": {
        "type": "allowed_hosts",
        "allowed_hosts": ["internal-api.mycompany.com", "git.mycompany.com"]
      },
      "packages": {
        "apt": ["git", "curl"]
      }
    }
  }' | jq .

Environment を取得する

# すべての Environment を一覧表示
curl -s https://api.qoder.com/api/v1/cloud/environments \
  -H "Authorization: Bearer $QODER_PAT"
# 単一 Environment の詳細を取得
curl -s https://api.qoder.com/api/v1/cloud/environments/env_ds456 \
  -H "Authorization: Bearer $QODER_PAT"

Environment を更新する

# 既存の Environment に新しい依存パッケージを追加
curl -s -X PUT https://api.qoder.com/api/v1/cloud/environments/env_ds456 \
  -H "Authorization: Bearer $QODER_PAT" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "data-science",
    "config": {
      "type": "cloud",
      "networking": {"type": "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://api.qoder.com/api/v1/cloud/environments/env_ds456 \
  -H "Authorization: Bearer $QODER_PAT"
環境がまだアーカイブされていないセッションから参照されている場合、DELETE は 409 “Environment is in use and cannot be deleted” を返します。先に参照元のセッションをアーカイブ/削除するか、POST /environments//archive でソフトデリート(参照制約なし)を使用してください。

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: ハードリミットはありませんが、実需に応じて作成し、管理が煩雑にならないようにしてください。命名規則による分類管理を推奨します。

次のステップ