WIP: Staged all changes
This commit is contained in:
132
specs/001-plugin-arch-svelte-ui/contracts/api.yaml
Normal file
132
specs/001-plugin-arch-svelte-ui/contracts/api.yaml
Normal file
@@ -0,0 +1,132 @@
|
||||
openapi: 3.0.0
|
||||
info:
|
||||
title: Superset Tools API
|
||||
version: 1.0.0
|
||||
description: API for managing Superset automation tools and plugins.
|
||||
|
||||
paths:
|
||||
/plugins:
|
||||
get:
|
||||
summary: List available plugins
|
||||
operationId: list_plugins
|
||||
responses:
|
||||
'200':
|
||||
description: List of plugins
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
type: array
|
||||
items:
|
||||
$ref: '#/components/schemas/Plugin'
|
||||
|
||||
/tasks:
|
||||
post:
|
||||
summary: Start a new task
|
||||
operationId: create_task
|
||||
requestBody:
|
||||
required: true
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
type: object
|
||||
required:
|
||||
- plugin_id
|
||||
- params
|
||||
properties:
|
||||
plugin_id:
|
||||
type: string
|
||||
params:
|
||||
type: object
|
||||
responses:
|
||||
'201':
|
||||
description: Task created
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: '#/components/schemas/Task'
|
||||
|
||||
get:
|
||||
summary: List recent tasks
|
||||
operationId: list_tasks
|
||||
responses:
|
||||
'200':
|
||||
description: List of tasks
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
type: array
|
||||
items:
|
||||
$ref: '#/components/schemas/Task'
|
||||
|
||||
/tasks/{task_id}:
|
||||
get:
|
||||
summary: Get task details
|
||||
operationId: get_task
|
||||
parameters:
|
||||
- name: task_id
|
||||
in: path
|
||||
required: true
|
||||
schema:
|
||||
type: string
|
||||
format: uuid
|
||||
responses:
|
||||
'200':
|
||||
description: Task details
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: '#/components/schemas/Task'
|
||||
|
||||
/tasks/{task_id}/logs:
|
||||
get:
|
||||
summary: Stream task logs (WebSocket upgrade)
|
||||
operationId: stream_logs
|
||||
parameters:
|
||||
- name: task_id
|
||||
in: path
|
||||
required: true
|
||||
schema:
|
||||
type: string
|
||||
format: uuid
|
||||
responses:
|
||||
'101':
|
||||
description: Switching Protocols to WebSocket
|
||||
|
||||
components:
|
||||
schemas:
|
||||
Plugin:
|
||||
type: object
|
||||
properties:
|
||||
id:
|
||||
type: string
|
||||
name:
|
||||
type: string
|
||||
description:
|
||||
type: string
|
||||
version:
|
||||
type: string
|
||||
schema:
|
||||
type: object
|
||||
description: JSON Schema for input parameters
|
||||
enabled:
|
||||
type: boolean
|
||||
|
||||
Task:
|
||||
type: object
|
||||
properties:
|
||||
id:
|
||||
type: string
|
||||
format: uuid
|
||||
plugin_id:
|
||||
type: string
|
||||
status:
|
||||
type: string
|
||||
enum: [PENDING, RUNNING, SUCCESS, FAILED]
|
||||
started_at:
|
||||
type: string
|
||||
format: date-time
|
||||
finished_at:
|
||||
type: string
|
||||
format: date-time
|
||||
user_id:
|
||||
type: string
|
||||
Reference in New Issue
Block a user