From c26b3fdf583ddbd5a088bc82082455901eef7d43 Mon Sep 17 00:00:00 2001 From: jeadie Date: Fri, 7 Aug 2026 14:20:16 +1000 Subject: [PATCH] Update openapi.json for spiceai/spiceai#12686 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Adds POST /v1/datasets/{name}/cdc for pushing Debezium CDC changes directly into an accelerated dataset (from: cdc:…, refresh_mode: changes) without Kafka, plus the CdcIngestResponse schema. --- website/public/openapi.json | 101 ++++++++++++++++++++++++++++++++++++ 1 file changed, 101 insertions(+) diff --git a/website/public/openapi.json b/website/public/openapi.json index 101ddef8c..9d14ff775 100644 --- a/website/public/openapi.json +++ b/website/public/openapi.json @@ -428,6 +428,89 @@ } } }, + "/v1/datasets/{name}/cdc": { + "post": { + "tags": [ + "Datasets" + ], + "summary": "Ingest Debezium CDC changes", + "description": "Push Debezium change events (JSON or Avro) directly into an accelerated\ndataset configured with `from: cdc:…` and `refresh_mode: changes`. No Kafka\nis required — use this as a Debezium Server / Embedded Engine sink.", + "operationId": "post_dataset_cdc", + "parameters": [ + { + "name": "name", + "in": "path", + "description": "Dataset name (must match a `from: cdc:…` dataset)", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "Debezium change event(s) as JSON or Avro", + "content": { + "application/avro": { + "schema": { + "type": "array", + "items": { + "type": "integer", + "format": "int32", + "minimum": 0 + } + } + }, + "application/json": { + "schema": {} + }, + "application/vnd.debezium+avro": { + "schema": { + "type": "array", + "items": { + "type": "integer", + "format": "int32", + "minimum": 0 + } + } + }, + "application/vnd.debezium+json": { + "schema": {} + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Changes applied", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CdcIngestResponse" + } + } + } + }, + "400": { + "description": "Invalid body or format" + }, + "403": { + "description": "Write access required" + }, + "404": { + "description": "Dataset not registered for CDC ingest" + }, + "501": { + "description": "CDC ingest requires the debezium feature in this build" + }, + "503": { + "description": "Change stream stopped (dataset unloaded or reloading)" + }, + "504": { + "description": "Timed out waiting for capacity or apply" + } + } + } + }, "/v1/embeddings": { "post": { "tags": [ @@ -2568,6 +2651,24 @@ } } }, + "CdcIngestResponse": { + "type": "object", + "required": [ + "applied", + "dataset" + ], + "properties": { + "applied": { + "type": "integer", + "description": "Number of change rows applied.", + "minimum": 0 + }, + "dataset": { + "type": "string", + "description": "Dataset that received the changes." + } + } + }, "ChatChoice": { "type": "object", "required": [