Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion docs/control-plane/ui-api-guide.md
Original file line number Diff line number Diff line change
Expand Up @@ -161,7 +161,7 @@ accepts repeated `schema_type` (top-level path segment, e.g. `meta`).
| PUT | `/sources/{name}` | Update source |
| PATCH | `/sources/{name}` | Set lifecycle state (`state: active\|dormant\|disabled`, or compat `enabled`); no new version; `409 match_conflict` if activating duplicates another non-disabled source's match |
| DELETE | `/sources/{name}` | Delete source |
| POST | `/sources/bulk` | Bulk action (`enable` / `disable` / `dormant` / `delete`) on named sources |
| POST | `/sources/bulk` | Bulk action (`enable` / `disable` / `dormant` / `delete` / `deploy`) on named sources |
| POST | `/sources/seed` | Seed defaults |

The landing source is engine-owned: it reads as `resource_type: core`, and POST,
Expand Down
2 changes: 1 addition & 1 deletion docs/data-plane/source-registry.md
Original file line number Diff line number Diff line change
Expand Up @@ -125,7 +125,7 @@ POST /api/v1/sources/{name}/deploy # Apply plan DDL to ClickHouse, set depl
PUT /api/v1/sources/{name} # Update source (bumps major version when a deployed pin changes)
PATCH /api/v1/sources/{name} # Set lifecycle state (state or enabled) - no new version
DELETE /api/v1/sources/{name} # Delete the definition
POST /api/v1/sources/bulk # Bulk action: enable | disable | dormant | delete
POST /api/v1/sources/bulk # Bulk action: enable | disable | dormant | delete | deploy
POST /api/v1/sources/seed # Seed built-in sources (non-destructive)
```

Expand Down
125 changes: 117 additions & 8 deletions openapi-spec/openapi.json
Original file line number Diff line number Diff line change
Expand Up @@ -5793,7 +5793,7 @@
"Sources"
],
"summary": "Bulk Action",
"description": "Perform a bulk action (enable, disable, dormant, delete) on multiple sources.",
"description": "Perform a bulk action on multiple sources.\n\n``enable`` / ``disable`` / ``dormant`` / ``delete`` apply immediately.\n``deploy`` submits one ``source:deploy`` background task per accepted source\n(poll ``GET /tasks/{task_id}``); refused names land in ``failed``.",
"operationId": "bulk_action_api_v1_sources_bulk_post",
"requestBody": {
"content": {
Expand Down Expand Up @@ -24039,6 +24039,33 @@
],
"title": "AppSummary"
},
"ApplyDefaultsPin": {
"properties": {
"source": {
"type": "string",
"title": "Source",
"description": "Source name (_source label)"
},
"version": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Version",
"description": "Version id that was pinned or already matched; null when unset"
}
},
"type": "object",
"required": [
"source"
],
"title": "ApplyDefaultsPin",
"description": "One source whose current version was considered for the table defaults."
},
"ApplyDefaultsRequest": {
"properties": {
"sources": {
Expand All @@ -24062,17 +24089,19 @@
"properties": {
"updated": {
"items": {
"type": "string"
"$ref": "#/components/schemas/ApplyDefaultsPin"
},
"type": "array",
"title": "Updated"
"title": "Updated",
"description": "Sources whose current version was written with the defaults"
},
"unchanged": {
"items": {
"type": "string"
"$ref": "#/components/schemas/ApplyDefaultsPin"
},
"type": "array",
"title": "Unchanged"
"title": "Unchanged",
"description": "Sources whose current version already matched the defaults"
},
"live": {
"items": {
Expand Down Expand Up @@ -24454,20 +24483,54 @@
],
"title": "Body_elastic_converter_api_v1_schemas_elastic_converter_post"
},
"BulkActionItem": {
"properties": {
"source": {
"type": "string",
"title": "Source",
"description": "Source name (_source label)"
},
"version": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Version",
"description": "Deploy only: version id to deploy. Omitted uses the working current. Ignored for enable/disable/dormant/delete."
}
},
"type": "object",
"required": [
"source"
],
"title": "BulkActionItem",
"description": "One source in a bulk request."
},
"BulkActionRequest": {
"properties": {
"action": {
"type": "string",
"title": "Action",
"description": "Action: enable, disable, dormant, delete"
"description": "Action: enable, disable, dormant, delete, deploy"
},
"sources": {
"items": {
"type": "string"
"$ref": "#/components/schemas/BulkActionItem"
},
"type": "array",
"minItems": 1,
"title": "Sources",
"description": "Source names to act on"
"description": "Sources to act on. Plain name strings are accepted."
},
"dry_run": {
"type": "boolean",
"title": "Dry Run",
"description": "Deploy only: plan/validate DDL without applying it. Ignored otherwise.",
"default": false
}
},
"type": "object",
Expand Down Expand Up @@ -24501,6 +24564,14 @@
"type": "array",
"title": "Failed",
"description": "One entry per source left untouched: its name, the same code the single-source route answers with, and the message"
},
"deployments": {
"items": {
"$ref": "#/components/schemas/BulkDeployTask"
},
"type": "array",
"title": "Deployments",
"description": "Deploy only: one ``source:deploy`` task per accepted source. Poll via GET /tasks/{task_id}."
}
},
"type": "object",
Expand All @@ -24510,6 +24581,44 @@
"title": "BulkActionResponse",
"description": "Result of a bulk operation."
},
"BulkDeployTask": {
"properties": {
"source": {
"type": "string",
"title": "Source"
},
"version": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Version",
"description": "Version requested; null means the working current at task start"
},
"task_id": {
"type": "string",
"title": "Task Id",
"description": "Task id for polling via GET /tasks/{task_id}"
},
"kind": {
"type": "string",
"title": "Kind",
"description": "Task kind",
"default": "source:deploy"
}
},
"type": "object",
"required": [
"source",
"task_id"
],
"title": "BulkDeployTask",
"description": "One accepted deploy submitted as a background task."
},
"BundleSchema-Input": {
"properties": {
"pins": {
Expand Down
Loading
Loading