23 lines · 1.2 KB · Text
RawDownload
-- Unwrap the retired {status, headers, data} transport envelope from-- persisted OpenAPI tool output schemas. The runtime now returns the-- upstream payload as `data` (status/headers moved to the ToolResult-- `http` side channel), so persisted schemas must describe the payload-- only. Rows produced before the envelope existed (pre-#854) are already-- payload-shaped and don't match the predicates; re-running is a no-op.---- The old producer emitted `"data": {}` when an operation declared no-- response schema; the new producer persists NULL for those.---- output_schema is a `json` column, so structural comparisons cast to-- jsonb (json has no equality operator).UPDATE "tool"SET "output_schema" = CASE  WHEN ("output_schema" -> 'properties' -> 'data')::jsonb = '{}'::jsonb THEN NULL  ELSE "output_schema" -> 'properties' -> 'data'ENDWHERE "plugin_id" = 'openapi'  AND "output_schema" IS NOT NULL  AND "output_schema" ->> 'type' = 'object'  AND ("output_schema" -> 'required')::jsonb = '["status", "headers", "data"]'::jsonb  AND ("output_schema" -> 'properties' -> 'status')::jsonb = '{"type": "integer"}'::jsonb  AND ("output_schema" -> 'properties' -> 'headers')::jsonb = '{"type": "object", "additionalProperties": {"type": "string"}}'::jsonb;