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_pipeline、source_type/source_uri を含む (source_uri は URL ソースの場合のみ設定される — UPLOAD のパスはプライベートな s3:// 参照であり、決して公開されない) |
GET /resources/{id}/artifacts/{artifactId} | 成果物の実際の内容 (テキスト、JSON、またはベクトル) を取得 — ポインタだけではない |
PATCH /resources/{id} | メタデータを編集、例: { name } |
POST /resources/{id}/reprocess | ステップ0からパイプラインを再実行。既存の成果物をその場で上書き |
PUT /resources/{id}/toggle | is_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": [ /* ... */ ] }
}