クイックスタート
Dev Stack Base APIを使い始めるには、まずAPIキーを取得し、最初のAPIリクエストを送信してみましょう。このガイドでは5分でHello Worldを達成できます。
本番環境のAPIキーは管理コンソールから取得できます。テスト用には dsb_test_xxxxxxxx 形式のサンドボックスキーを使用してください。
Step 1: APIキーの取得
管理コンソールにログインし、設定 → API キー → 新規作成 からAPIキーを発行します。キーには適切なスコープを設定し、安全に管理してください。
アカウントにサインイン
console.devstackbase.com にアクセスし、企業アカウントでログインします。
APIキーを生成
左ナビゲーションの「API管理」から「新規キーを生成」をクリックし、用途と権限スコープを指定します。
環境変数に設定
生成されたキーを環境変数 DSB_API_KEY に設定します。キーは一度しか表示されないので必ず保存してください。
最初のリクエストを送信
以下のcurlコマンドで接続を確認できます。
最初のAPIリクエスト
# APIキーを環境変数に設定
export DSB_API_KEY="dsb_live_your_api_key_here"
# ヘルスチェックエンドポイントで接続確認
curl -X GET "https://api.devstackbase.com/v1/health" \
-H "Authorization: Bearer $DSB_API_KEY" \
-H "Content-Type: application/json"
# 期待されるレスポンス:
# {
# "status": "ok",
# "version": "v1",
# "region": "ap-northeast-1",
# "timestamp": "2026-05-20T09:00:00Z"
# }
デプロイメントの作成
APIキーの確認ができたら、最初のデプロイメントを作成してみましょう。
curl -X POST "https://api.devstackbase.com/v1/deployments" \
-H "Authorization: Bearer $DSB_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"name": "my-first-app",
"image": "my-registry/my-app:latest",
"replicas": 2,
"resources": {
"cpu": "500m",
"memory": "512Mi"
},
"env": [
{"name": "NODE_ENV", "value": "production"},
{"name": "PORT", "value": "3000"}
],
"ports": [{"containerPort": 3000, "protocol": "TCP"}]
}'
デプロイメント名はDNSラベル形式(小文字英数字とハイフン)で指定してください。一度設定した名前は変更できません。
認証
Dev Stack Base APIはBearerトークン認証を使用します。すべてのAPIリクエストには有効なAPIキーが必要です。
認証ヘッダー
Authorization: Bearer dsb_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
APIキーの種類
| キー種別 | プレフィックス | 用途 | 有効期限 |
|---|---|---|---|
| 本番キー | dsb_live_ |
本番環境でのAPI呼び出し | 設定による(最大1年) |
| テストキー | dsb_test_ |
開発・テスト環境 | 30日(自動更新可) |
| CI/CDキー | dsb_ci_ |
デプロイパイプライン専用 | プロジェクト単位で管理 |
| 読み取り専用キー | dsb_ro_ |
モニタリング・監査用 | 設定による |
APIキーをコードにハードコードしないでください。環境変数またはシークレットマネージャーを使用してください。GitHubなどのパブリックリポジトリに誤ってコミットした場合は、即座にキーを無効化してください。
スコープ(権限)
APIキーには以下のスコープを個別に付与できます。最小権限の原則に従い、必要なスコープのみを付与することを推奨します。
deployments:read— デプロイメント情報の読み取りdeployments:write— デプロイメントの作成・更新・削除services:read— サービス情報の読み取りservices:write— サービスの設定変更logs:read— ログデータの読み取りmetrics:read— メトリクスデータの読み取りsecrets:read— シークレット名の列挙(値は読み取り不可)secrets:write— シークレットの作成・更新admin:*— すべての権限(管理者専用)
APIリファレンス
Dev Stack Base REST APIのすべてのエンドポイント一覧です。ベースURLは https://api.devstackbase.com/v1 です。
デプロイメント API
| メソッド | エンドポイント | 説明 | スコープ |
|---|---|---|---|
| GET | /deployments |
デプロイメント一覧取得 | deployments:read |
| POST | /deployments |
新規デプロイメント作成 | deployments:write |
| GET | /deployments/{id} |
特定デプロイメントの詳細取得 | deployments:read |
| PUT | /deployments/{id} |
デプロイメントの更新 | deployments:write |
| PATCH | /deployments/{id}/scale |
レプリカ数の変更 | deployments:write |
| DELETE | /deployments/{id} |
デプロイメントの削除 | deployments:write |
| GET | /deployments/{id}/logs |
デプロイメントのログ取得 | logs:read |
| GET | /deployments/{id}/metrics |
リソースメトリクス取得 | metrics:read |
デプロイメント作成 リクエストボディ
| パラメータ | 型 | 説明 |
|---|---|---|
| name必須 | string |
デプロイメント名(DNS形式、一意) |
| image必須 | string |
コンテナイメージのURIとタグ |
| replicas省略可 | integer |
レプリカ数(デフォルト: 1、最大: 100) |
| resources.cpu省略可 | string |
CPU要求(例: "500m", "1", "2") |
| resources.memory省略可 | string |
メモリ要求(例: "512Mi", "1Gi") |
| env省略可 | array |
環境変数の配列 [{name, value}] |
| ports省略可 | array |
公開ポートの配列 [{containerPort, protocol}] |
| autoscaling省略可 | object |
HPA設定 {minReplicas, maxReplicas, targetCPU} |
レスポンス例
{
"id": "dep_a1b2c3d4e5f6",
"name": "my-first-app",
"status": "deploying",
"image": "my-registry/my-app:latest",
"replicas": {
"desired": 2,
"ready": 0,
"available": 0
},
"endpoint": "https://my-first-app.dsb.app",
"region": "ap-northeast-1",
"createdAt": "2026-05-20T09:00:00Z",
"updatedAt": "2026-05-20T09:00:01Z"
}
エラーコード一覧
| HTTPステータス | エラーコード | 説明 |
|---|---|---|
| 400 | INVALID_REQUEST | リクエストパラメータが不正 |
| 401 | UNAUTHORIZED | APIキーが無効または期限切れ |
| 403 | FORBIDDEN | 操作に必要なスコープがない |
| 404 | NOT_FOUND | 指定リソースが存在しない |
| 409 | CONFLICT | 同名リソースが既に存在する |
| 422 | UNPROCESSABLE | バリデーションエラー |
| 429 | RATE_LIMITED | レート制限に達した |
| 500 | INTERNAL_ERROR | サーバー内部エラー |
| 503 | SERVICE_UNAVAILABLE | メンテナンス中 |
SDK・ライブラリ
主要なプログラミング言語向けの公式SDKを提供しています。SDKを使用することでAPIの認証・エラーハンドリング・型定義が自動で処理されます。
JavaScript SDK インストール
# npm
npm install @devstackbase/sdk
# yarn
yarn add @devstackbase/sdk
# pnpm
pnpm add @devstackbase/sdk
JavaScript SDK 使用例
import { DevStackBaseClient } from '@devstackbase/sdk';
// クライアントの初期化
const client = new DevStackBaseClient({
apiKey: process.env.DSB_API_KEY,
region: 'ap-northeast-1',
timeout: 30000,
});
// デプロイメントの作成
async function deployApp() {
try {
const deployment = await client.deployments.create({
name: 'my-app',
image: 'registry.dsb.app/my-app:v1.2.0',
replicas: 3,
resources: { cpu: '500m', memory: '512Mi' },
autoscaling: {
minReplicas: 2,
maxReplicas: 10,
targetCPU: 70,
},
});
console.log(`Deployed: ${deployment.endpoint}`);
} catch (err) {
if (err instanceof DevStackBaseClient.RateLimitError) {
console.log('Rate limited. Retry after:', err.retryAfter);
}
throw err;
}
}
deployApp();
Python SDK インストールと使用例
# インストール
# pip install devstackbase
from devstackbase import Client
import os
client = Client(api_key=os.environ["DSB_API_KEY"])
# デプロイメント一覧を取得
deployments = client.deployments.list(status="running")
for dep in deployments.items:
print(f"{dep.name}: {dep.status} ({dep.replicas.ready}/{dep.replicas.desired})")
# メトリクスの取得
metrics = client.deployments.get_metrics(
deployment_id="dep_a1b2c3d4e5f6",
start="2026-05-19T00:00:00Z",
end="2026-05-20T00:00:00Z",
resolution="1m"
)
print(f"平均CPU: {metrics.cpu.avg:.1f}%")
print(f"平均メモリ: {metrics.memory.avg_mb:.0f}MB")
変更履歴
Dev Stack Base APIおよびSDKの変更履歴です。セマンティックバージョニングに従っています。
- 新機能マルチリージョンデプロイメントAPIの追加(東京・大阪・シンガポール)
- 新機能Webhooksイベントに
deployment.scaledとdeployment.rollbackを追加 - 改善デプロイメント作成APIのレスポンス速度を平均40%改善
- 修正特定条件でのメトリクス取得タイムアウトを修正
- 新機能カスタムドメインAPIの追加(SSL証明書の自動プロビジョニング)
- 新機能Terraform Provider v0.9.0に対応
- 改善ログストリーミングAPIにフィルタリング機能を追加
- 改善Python SDK の非同期クライアント(asyncio)サポート
- 新機能シークレット管理APIの追加(AES-256暗号化)
- 改善レート制限の上限をエンタープライズプランで10,000req/minに引き上げ
- 修正大量デプロイメント環境でのリスト取得ページネーションを修正
- 修正CI/CDキーの権限昇格バグを修正(CVE-2026-0021)