Skip to content

REST APIリファレンス

すべてのエンドポイントは /api/v1/ 配下にあります。すべてのエラーレスポンスは同じエンベロープを 使用します:

json
{ "error": { "code": "STRING_CODE", "message": "Human readable message", "details": {} } }

この文書の完全な、仕様の一次情報源版は specs/001-datacore-knowledge-warehouse/contracts/rest-api.md にあります。

リソース

メソッド & パス説明
GET /resources?q=リソース一覧を取得 (名前の部分文字列でフィルタ可能)
POST /resourcesリソースを登録: { name, type, source: { kind: "UPLOAD", file } | { kind: "URL", url } }
GET /resources/{id}1件のリソースを取得。artifacts[]、導出された no_matching_pipelinesource_type/source_uri を含む (source_uriURL ソースの場合のみ設定される — UPLOAD のパスはプライベートな s3:// 参照であり、決して公開されない)
GET /resources/{id}/artifacts/{artifactId}成果物の実際の内容 (テキスト、JSON、またはベクトル) を取得 — ポインタだけではない
PATCH /resources/{id}メタデータを編集、例: { name }
POST /resources/{id}/reprocessステップ0からパイプラインを再実行。既存の成果物をその場で上書き
PUT /resources/{id}/toggleis_enabled を反転 — (将来の) MCPサーバーがこのリソースをLLMに公開するかどうかを制御。パイプライン処理には影響しない
DELETE /resources/{id}リソースを削除し、その成果物を連鎖的にクリーンアップ。PROCESSING 中は 409 で拒否

パイプライン

メソッド & パス説明
GET /pipelines順序付けられたステップとともにパイプライン一覧を取得
POST /pipelines作成: { name, trigger_type, steps: [{ plugin_id, max_attempts?, backoff_seconds?, timeout_seconds? }] } — トリガータイプに既にパイプラインがある場合は 409
PUT /pipelines/{id}ステップの並びを置き換える。処理中のリソースには影響しない
DELETE /pipelines/{id}削除。処理中のリソースには影響しない (自身がキャプチャしたステップスナップショットから実行され続けるため)

プラグイン

メソッド & パス説明
GET /plugins登録済みの全プラグインを取得
PUT /plugins/{id}/toggle有効/無効を切り替え
DELETE /plugins/{id}削除。パイプラインステップから参照されている場合は 409 PLUGIN_IN_USE

内部コールバック (プラグインワーカー → コア)

メソッド & パス説明
POST /internal/artifacts/{resource_id}プラグインワーカーがそのステップの成功 (成果物付き) または失敗を報告するために呼び出す — プラグインの作り方 を参照

成果物の内容を表示する

GET /resources/{id}/artifacts/{artifactId} は、Web UIの成果物チップ上の「結果を表示」クリックを 支えるエンドポイントです。コアはサーバーサイドで内容を取得します (生のストレージ認証情報をブラウザに プロキシすることは決してありません):

bash
curl http://localhost:3010/api/v1/resources/<id>/artifacts/<artifactId>
json
{
  "id": "...",
  "type": "REPO_ANALYSIS",
  "content_type": "json",
  "content": { "username": "octocat", "repo_count": 8, "repos": [ /* ... */ ] }
}