Update Draft

PUT
/v1/admin/drafts/{draft_id}

Not available yet. This operation is part of the published contract and answers 501 not_implemented until it is built. The request and response shapes below are final for this contract version.

Authorization

HTTPBearer
headerAuthorizationBearer <token>

Bearer credential. API keys look like sqk_<geo>_<key_id>_<secret>: treat them as opaque and never put one in a browser. Older keys without the geo part stay valid until rotated. Find a geo's endpoints through GET /.well-known/sparq-discovery before sending a key.

Path Parameters

draft_id*Draft Id
Formatuuid

Header Parameters

Sparq-Workspace?string

For a person signed in to a console with several workspaces: the workspace this call is for, one of their memberships (listMyMemberships). Without it such a person gets workspace_required (400); a workspace they are not a member of is forbidden. It never grants anything, and other callers' credentials ignore it.

Formatuuid
If-Match?string

The ETag you last read. A different current version is precondition_failed (412). Optional in 0.5.0.

Request Body

application/json
  1. body

Body of POST /v1/admin/projects/{project_id}/drafts.

document*|||
base_version?|

The version this draft changes; empty for a new spec.

Response Body

Successful Response

application/json
  1. response
draft_id*Draft Id
Formatuuid
project_id*Project Id
Formatuuid
kind*Kind
Value in"agent""skill""tool""workflow"
name*Name
base_version*|null
document*|||
content_hash*Content Hash

SHA-256 of the canonical JSON form of a document.

Match^sha256:[0-9a-f]{64}$
status*DraftStatus
Value in"draft""valid""invalid""evaluated""in_review""published""withdrawn"
created_by*Created By
created_at*Created At
Formatdate-time
updated_at*Updated At
Formatdate-time
Example Request
curl -X PUT 'http://dev-sparq.centralindia.cloudapp.azure.com:8000/v1/admin/drafts/497f6eca-6276-4993-bfeb-53cbbbba6f08' \  -H 'Content-Type: application/json' \  -d '{  "document": {    "name": "string",    "version": "1.4.0",    "job": "string",    "who_can_use": [      "agent"    ],    "model": {      "class": "fast"    },    "instructions": "string"  }}'
Example Response
{  "draft_id": "d998e5e8-954a-4a68-bb9e-7305e87278c0",  "project_id": "405d8375-3514-403b-8c43-83ae74cfe0e9",  "kind": "agent",  "name": "string",  "base_version": "1.4.0",  "document": {    "kind": "agent",    "schema_version": "1",    "name": "string",    "version": "1.4.0",    "job": "string",    "routing_description": "string",    "who_can_use": [      "agent"    ],    "mode": "react",    "escalate_to": "react",    "model": {      "class": "fast",      "fallback_class": "fast",      "reasoning_effort": "low"    },    "instructions": "string",    "output_schema": "string",    "skills": [      "refund-policy@^1"    ],    "tools": [      "tickets.get"    ],    "agents": [      "refund-policy@^1"    ],    "workflow": "refund-policy@^1",    "limits": {      "model_requests": 25,      "tool_calls": 15,      "delegation_depth": 2,      "loop_iterations": 3,      "interactive_wall_clock_s": 120,      "background_wall_clock_s": 1800    },    "approvals": {      "autonomy": "read_only",      "ask_before": [        "read"      ],      "plan_check": true,      "pause_timeout_s": 86400    },    "features_required": [      "web_search"    ],    "middleware": [      "string"    ],    "tests": {      "suite": "string",      "must_pass": 0,      "leaks_allowed": 0    },    "knowledge": {      "collections": [        "string"      ],      "top_k": 8,      "min_score": 0.3,      "citations_required": true    }  },  "content_hash": "string",  "status": "draft",  "created_by": "string",  "created_at": "2019-08-24T14:15:22Z",  "updated_at": "2019-08-24T14:15:22Z"}