Regenerated against UI API 1.6.0: every operation has an operationId and the standard error responses (BasicErrorResponseV1: error, code, message, fieldErrors, traceId); the extension's own error schema is kept but deprecated; hand-written error bodies go through QJavalinUtils so they carry code/message/traceId. Extension MINOR bumped. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2379 lines
71 KiB
YAML
2379 lines
71 KiB
YAML
components:
|
|
schemas:
|
|
BasicErrorResponseV1:
|
|
description: "The error body of every UI API operation (core and extensions)."
|
|
properties:
|
|
error:
|
|
description: "The error message (the same as message; kept for clients of\
|
|
\ UI API 1.0 to 1.5)."
|
|
type: "string"
|
|
code:
|
|
description: "A stable, machine-readable code. Well-known values: BAD_REQUEST\
|
|
\ (400), UNAUTHENTICATED (401),\nPERMISSION_DENIED (403), NOT_FOUND (404),\
|
|
\ CONFLICT (409), RATE_LIMITED (429), INTERNAL_ERROR (500),\nERROR (other).\
|
|
\ Extensions may add codes; treat an unknown code by the HTTP status.\
|
|
\ Since 1.6.0."
|
|
type: "string"
|
|
message:
|
|
description: "A message to show the user. Since 1.6.0."
|
|
type: "string"
|
|
fieldErrors:
|
|
description: "Errors about particular request fields, when known. Since\
|
|
\ 1.6.0."
|
|
items:
|
|
properties:
|
|
field:
|
|
description: "The field (or parameter) name."
|
|
type: "string"
|
|
message:
|
|
description: "The error about that field."
|
|
type: "string"
|
|
code:
|
|
description: "An optional machine-readable code, e.g. REQUIRED, TOO_LONG,\
|
|
\ PATTERN."
|
|
type: "string"
|
|
type: "object"
|
|
type: "array"
|
|
traceId:
|
|
description: "Identifies this request in the server logs (also the X-QQQ-Trace-Id\
|
|
\ response header); quote it when reporting a problem. Since 1.6.0."
|
|
type: "string"
|
|
type: "object"
|
|
SqlWorkbenchBackendV1:
|
|
properties:
|
|
name:
|
|
type: "string"
|
|
label:
|
|
type: "string"
|
|
vendor:
|
|
nullable: true
|
|
type: "string"
|
|
dialect:
|
|
$ref: "#/components/schemas/SqlWorkbenchDialectV1"
|
|
readOnlyCredentials:
|
|
type: "boolean"
|
|
readOnlyEnforced:
|
|
type: "boolean"
|
|
transactionalDdl:
|
|
type: "boolean"
|
|
writeAllowed:
|
|
type: "boolean"
|
|
type: "object"
|
|
SqlWorkbenchBinaryValueV1:
|
|
properties:
|
|
$binary:
|
|
type: "boolean"
|
|
length:
|
|
format: "int64"
|
|
type: "integer"
|
|
hexPreview:
|
|
type: "string"
|
|
type: "object"
|
|
SqlWorkbenchCancelledV1:
|
|
properties:
|
|
cancelled:
|
|
type: "boolean"
|
|
type: "object"
|
|
SqlWorkbenchCapabilitiesV1:
|
|
properties:
|
|
version:
|
|
type: "string"
|
|
canWrite:
|
|
type: "boolean"
|
|
canShare:
|
|
type: "boolean"
|
|
writeModeEnabled:
|
|
type: "boolean"
|
|
limits:
|
|
$ref: "#/components/schemas/SqlWorkbenchLimitsV1"
|
|
backends:
|
|
items:
|
|
$ref: "#/components/schemas/SqlWorkbenchBackendV1"
|
|
type: "array"
|
|
type: "object"
|
|
SqlWorkbenchCellV1:
|
|
properties:
|
|
cellKey:
|
|
type: "string"
|
|
cellType:
|
|
type: "string"
|
|
title:
|
|
nullable: true
|
|
type: "string"
|
|
content:
|
|
type: "string"
|
|
backendName:
|
|
nullable: true
|
|
type: "string"
|
|
sortOrder:
|
|
format: "int64"
|
|
type: "integer"
|
|
type: "object"
|
|
SqlWorkbenchColumnKindV1:
|
|
enum:
|
|
- "number"
|
|
- "string"
|
|
- "boolean"
|
|
- "date"
|
|
- "datetime"
|
|
- "time"
|
|
- "json"
|
|
- "binary"
|
|
- "array"
|
|
- "other"
|
|
type: "string"
|
|
SqlWorkbenchColumnV1:
|
|
properties:
|
|
name:
|
|
type: "string"
|
|
label:
|
|
type: "string"
|
|
typeName:
|
|
type: "string"
|
|
jdbcType:
|
|
format: "int64"
|
|
type: "integer"
|
|
kind:
|
|
$ref: "#/components/schemas/SqlWorkbenchColumnKindV1"
|
|
type: "object"
|
|
SqlWorkbenchDatabaseSchemaV1:
|
|
properties:
|
|
name:
|
|
type: "string"
|
|
tables:
|
|
items:
|
|
$ref: "#/components/schemas/SqlWorkbenchSchemaTableV1"
|
|
type: "array"
|
|
type: "object"
|
|
SqlWorkbenchDeletedV1:
|
|
properties:
|
|
deleted:
|
|
type: "boolean"
|
|
type: "object"
|
|
SqlWorkbenchDialectV1:
|
|
enum:
|
|
- "postgresql"
|
|
- "mysql"
|
|
- "sqlite"
|
|
- "h2"
|
|
- "sql"
|
|
type: "string"
|
|
SqlWorkbenchEmptyRequestV1:
|
|
type: "object"
|
|
SqlWorkbenchErrorV1:
|
|
description: "Deprecated since 1.1.0: errors use BasicErrorResponseV1."
|
|
properties:
|
|
error:
|
|
type: "string"
|
|
type: "object"
|
|
SqlWorkbenchExecuteRequestV1:
|
|
properties:
|
|
backendName:
|
|
type: "string"
|
|
sql:
|
|
type: "string"
|
|
params:
|
|
$ref: "#/components/schemas/SqlWorkbenchParametersV1"
|
|
mode:
|
|
type: "string"
|
|
notebookId:
|
|
format: "int64"
|
|
nullable: true
|
|
type: "integer"
|
|
cellKey:
|
|
nullable: true
|
|
type: "string"
|
|
pageSize:
|
|
format: "int64"
|
|
nullable: true
|
|
type: "integer"
|
|
confirmToken:
|
|
nullable: true
|
|
type: "string"
|
|
acknowledgeRowGuard:
|
|
type: "boolean"
|
|
executionUuid:
|
|
nullable: true
|
|
type: "string"
|
|
type: "object"
|
|
SqlWorkbenchExecutionV1:
|
|
properties:
|
|
executionUuid:
|
|
type: "string"
|
|
status:
|
|
$ref: "#/components/schemas/SqlWorkbenchStatusV1"
|
|
mode:
|
|
type: "string"
|
|
backendName:
|
|
type: "string"
|
|
durationMs:
|
|
format: "int64"
|
|
nullable: true
|
|
type: "integer"
|
|
statements:
|
|
items:
|
|
$ref: "#/components/schemas/SqlWorkbenchStatementV1"
|
|
type: "array"
|
|
columns:
|
|
items:
|
|
$ref: "#/components/schemas/SqlWorkbenchColumnV1"
|
|
type: "array"
|
|
rows:
|
|
$ref: "#/components/schemas/SqlWorkbenchRowsDataV1"
|
|
rowCount:
|
|
format: "int64"
|
|
type: "integer"
|
|
hasMore:
|
|
type: "boolean"
|
|
truncated:
|
|
type: "boolean"
|
|
truncatedReason:
|
|
nullable: true
|
|
type: "string"
|
|
rowsAffected:
|
|
format: "int64"
|
|
type: "integer"
|
|
error:
|
|
type: "string"
|
|
sqlState:
|
|
nullable: true
|
|
type: "string"
|
|
dryRunSupported:
|
|
type: "boolean"
|
|
dryRunNote:
|
|
nullable: true
|
|
type: "string"
|
|
totalAffectedRows:
|
|
format: "int64"
|
|
nullable: true
|
|
type: "integer"
|
|
rowGuardExceeded:
|
|
type: "boolean"
|
|
rowGuardLimit:
|
|
format: "int64"
|
|
type: "integer"
|
|
confirmToken:
|
|
type: "string"
|
|
expiresAt:
|
|
type: "string"
|
|
previewAffectedRows:
|
|
format: "int64"
|
|
type: "integer"
|
|
actualAffectedRows:
|
|
format: "int64"
|
|
type: "integer"
|
|
type: "object"
|
|
SqlWorkbenchExplainRequestV1:
|
|
properties:
|
|
backendName:
|
|
type: "string"
|
|
sql:
|
|
type: "string"
|
|
params:
|
|
$ref: "#/components/schemas/SqlWorkbenchParametersV1"
|
|
analyze:
|
|
type: "boolean"
|
|
type: "object"
|
|
SqlWorkbenchExplainV1:
|
|
properties:
|
|
executionUuid:
|
|
type: "string"
|
|
status:
|
|
$ref: "#/components/schemas/SqlWorkbenchStatusV1"
|
|
mode:
|
|
type: "string"
|
|
backendName:
|
|
type: "string"
|
|
dialect:
|
|
$ref: "#/components/schemas/SqlWorkbenchDialectV1"
|
|
analyze:
|
|
type: "boolean"
|
|
plan:
|
|
$ref: "#/components/schemas/SqlWorkbenchPlanNodeV1"
|
|
raw:
|
|
type: "string"
|
|
error:
|
|
type: "string"
|
|
sqlState:
|
|
nullable: true
|
|
type: "string"
|
|
durationMs:
|
|
format: "int64"
|
|
nullable: true
|
|
type: "integer"
|
|
type: "object"
|
|
SqlWorkbenchExportFileV1:
|
|
format: "binary"
|
|
type: "string"
|
|
SqlWorkbenchExportJsonV1:
|
|
description: "Rows keyed by unique column labels, with duplicate labels suffixed."
|
|
items:
|
|
additionalProperties:
|
|
$ref: "#/components/schemas/SqlWorkbenchValueV1"
|
|
type: "object"
|
|
type: "array"
|
|
SqlWorkbenchFreeObjectV1:
|
|
additionalProperties: true
|
|
type: "object"
|
|
SqlWorkbenchHistoryEntryV1:
|
|
properties:
|
|
executionUuid:
|
|
type: "string"
|
|
backendName:
|
|
type: "string"
|
|
mode:
|
|
type: "string"
|
|
status:
|
|
type: "string"
|
|
sqlText:
|
|
type: "string"
|
|
notebookId:
|
|
format: "int64"
|
|
nullable: true
|
|
type: "integer"
|
|
cellKey:
|
|
nullable: true
|
|
type: "string"
|
|
startTime:
|
|
nullable: true
|
|
type: "string"
|
|
durationMs:
|
|
format: "int64"
|
|
nullable: true
|
|
type: "integer"
|
|
rowsReturned:
|
|
format: "int64"
|
|
nullable: true
|
|
type: "integer"
|
|
rowsAffected:
|
|
format: "int64"
|
|
nullable: true
|
|
type: "integer"
|
|
errorMessage:
|
|
nullable: true
|
|
type: "string"
|
|
type: "object"
|
|
SqlWorkbenchHistoryV1:
|
|
properties:
|
|
executions:
|
|
items:
|
|
$ref: "#/components/schemas/SqlWorkbenchHistoryEntryV1"
|
|
type: "array"
|
|
type: "object"
|
|
SqlWorkbenchLimitsV1:
|
|
properties:
|
|
maxRows:
|
|
format: "int64"
|
|
type: "integer"
|
|
pageSize:
|
|
format: "int64"
|
|
type: "integer"
|
|
maxPageSize:
|
|
format: "int64"
|
|
type: "integer"
|
|
maxResultBytes:
|
|
format: "int64"
|
|
type: "integer"
|
|
statementTimeoutSeconds:
|
|
format: "int64"
|
|
type: "integer"
|
|
writeStatementTimeoutSeconds:
|
|
format: "int64"
|
|
type: "integer"
|
|
maxAffectedRowsWithoutAcknowledgement:
|
|
format: "int64"
|
|
type: "integer"
|
|
maxAffectedRows:
|
|
format: "int64"
|
|
type: "integer"
|
|
maxSqlLength:
|
|
format: "int64"
|
|
type: "integer"
|
|
maxStatementsPerRun:
|
|
format: "int64"
|
|
type: "integer"
|
|
type: "object"
|
|
SqlWorkbenchNotebookContentV1:
|
|
properties:
|
|
title:
|
|
type: "string"
|
|
description:
|
|
nullable: true
|
|
type: "string"
|
|
defaultBackendName:
|
|
nullable: true
|
|
type: "string"
|
|
parameters:
|
|
items:
|
|
$ref: "#/components/schemas/SqlWorkbenchNotebookParameterV1"
|
|
type: "array"
|
|
cells:
|
|
items:
|
|
$ref: "#/components/schemas/SqlWorkbenchCellV1"
|
|
type: "array"
|
|
type: "object"
|
|
SqlWorkbenchNotebookParameterV1:
|
|
properties:
|
|
name:
|
|
type: "string"
|
|
type:
|
|
type: "string"
|
|
defaultValue:
|
|
nullable: true
|
|
type: "string"
|
|
label:
|
|
nullable: true
|
|
type: "string"
|
|
type: "object"
|
|
SqlWorkbenchNotebookRequestV1:
|
|
properties:
|
|
title:
|
|
type: "string"
|
|
description:
|
|
nullable: true
|
|
type: "string"
|
|
defaultBackendName:
|
|
nullable: true
|
|
type: "string"
|
|
parameters:
|
|
items:
|
|
$ref: "#/components/schemas/SqlWorkbenchNotebookParameterV1"
|
|
type: "array"
|
|
cells:
|
|
items:
|
|
$ref: "#/components/schemas/SqlWorkbenchCellV1"
|
|
type: "array"
|
|
comment:
|
|
type: "string"
|
|
type: "object"
|
|
SqlWorkbenchNotebookSummaryV1:
|
|
properties:
|
|
id:
|
|
format: "int64"
|
|
type: "integer"
|
|
title:
|
|
type: "string"
|
|
description:
|
|
nullable: true
|
|
type: "string"
|
|
visibility:
|
|
type: "string"
|
|
ownerUserId:
|
|
type: "string"
|
|
ownerName:
|
|
nullable: true
|
|
type: "string"
|
|
defaultBackendName:
|
|
nullable: true
|
|
type: "string"
|
|
currentVersion:
|
|
format: "int64"
|
|
type: "integer"
|
|
canEdit:
|
|
type: "boolean"
|
|
createDate:
|
|
nullable: true
|
|
type: "string"
|
|
modifyDate:
|
|
nullable: true
|
|
type: "string"
|
|
type: "object"
|
|
SqlWorkbenchNotebookV1:
|
|
properties:
|
|
id:
|
|
format: "int64"
|
|
type: "integer"
|
|
title:
|
|
type: "string"
|
|
description:
|
|
nullable: true
|
|
type: "string"
|
|
visibility:
|
|
type: "string"
|
|
ownerUserId:
|
|
type: "string"
|
|
ownerName:
|
|
nullable: true
|
|
type: "string"
|
|
defaultBackendName:
|
|
nullable: true
|
|
type: "string"
|
|
currentVersion:
|
|
format: "int64"
|
|
type: "integer"
|
|
canEdit:
|
|
type: "boolean"
|
|
createDate:
|
|
nullable: true
|
|
type: "string"
|
|
modifyDate:
|
|
nullable: true
|
|
type: "string"
|
|
parameters:
|
|
items:
|
|
$ref: "#/components/schemas/SqlWorkbenchNotebookParameterV1"
|
|
type: "array"
|
|
cells:
|
|
items:
|
|
$ref: "#/components/schemas/SqlWorkbenchCellV1"
|
|
type: "array"
|
|
type: "object"
|
|
SqlWorkbenchNotebooksV1:
|
|
properties:
|
|
notebooks:
|
|
items:
|
|
$ref: "#/components/schemas/SqlWorkbenchNotebookSummaryV1"
|
|
type: "array"
|
|
type: "object"
|
|
SqlWorkbenchParametersV1:
|
|
additionalProperties: {}
|
|
description: "Named SQL parameter values. JSON decimals are parsed exactly as\
|
|
\ BigDecimal."
|
|
type: "object"
|
|
SqlWorkbenchPlanNodeV1:
|
|
properties:
|
|
label:
|
|
type: "string"
|
|
detail:
|
|
nullable: true
|
|
type: "string"
|
|
startupCost:
|
|
nullable: true
|
|
type: "number"
|
|
totalCost:
|
|
nullable: true
|
|
type: "number"
|
|
planRows:
|
|
format: "int64"
|
|
nullable: true
|
|
type: "integer"
|
|
actualTimeMs:
|
|
nullable: true
|
|
type: "number"
|
|
actualRows:
|
|
format: "int64"
|
|
nullable: true
|
|
type: "integer"
|
|
loops:
|
|
format: "int64"
|
|
nullable: true
|
|
type: "integer"
|
|
extra:
|
|
$ref: "#/components/schemas/SqlWorkbenchFreeObjectV1"
|
|
children:
|
|
items:
|
|
$ref: "#/components/schemas/SqlWorkbenchPlanNodeV1"
|
|
type: "array"
|
|
type: "object"
|
|
SqlWorkbenchPublishRequestV1:
|
|
properties:
|
|
shared:
|
|
type: "boolean"
|
|
type: "object"
|
|
SqlWorkbenchQqqFieldV1:
|
|
properties:
|
|
name:
|
|
type: "string"
|
|
label:
|
|
nullable: true
|
|
type: "string"
|
|
sqlName:
|
|
type: "string"
|
|
type:
|
|
nullable: true
|
|
type: "string"
|
|
type: "object"
|
|
SqlWorkbenchQqqTableV1:
|
|
properties:
|
|
name:
|
|
type: "string"
|
|
label:
|
|
nullable: true
|
|
type: "string"
|
|
sqlName:
|
|
type: "string"
|
|
fields:
|
|
items:
|
|
$ref: "#/components/schemas/SqlWorkbenchQqqFieldV1"
|
|
type: "array"
|
|
type: "object"
|
|
SqlWorkbenchRowsDataV1:
|
|
items:
|
|
items:
|
|
$ref: "#/components/schemas/SqlWorkbenchValueV1"
|
|
type: "array"
|
|
type: "array"
|
|
SqlWorkbenchRowsV1:
|
|
properties:
|
|
executionUuid:
|
|
type: "string"
|
|
columns:
|
|
items:
|
|
$ref: "#/components/schemas/SqlWorkbenchColumnV1"
|
|
type: "array"
|
|
rows:
|
|
$ref: "#/components/schemas/SqlWorkbenchRowsDataV1"
|
|
offset:
|
|
format: "int64"
|
|
type: "integer"
|
|
rowCount:
|
|
format: "int64"
|
|
type: "integer"
|
|
truncated:
|
|
type: "boolean"
|
|
truncatedReason:
|
|
nullable: true
|
|
type: "string"
|
|
type: "object"
|
|
SqlWorkbenchSchemaColumnV1:
|
|
properties:
|
|
name:
|
|
type: "string"
|
|
typeName:
|
|
type: "string"
|
|
nullable:
|
|
type: "boolean"
|
|
type: "object"
|
|
SqlWorkbenchSchemaTableV1:
|
|
properties:
|
|
name:
|
|
type: "string"
|
|
type:
|
|
type: "string"
|
|
columns:
|
|
items:
|
|
$ref: "#/components/schemas/SqlWorkbenchSchemaColumnV1"
|
|
type: "array"
|
|
type: "object"
|
|
SqlWorkbenchSchemaV1:
|
|
properties:
|
|
backendName:
|
|
type: "string"
|
|
dialect:
|
|
$ref: "#/components/schemas/SqlWorkbenchDialectV1"
|
|
schemas:
|
|
items:
|
|
$ref: "#/components/schemas/SqlWorkbenchDatabaseSchemaV1"
|
|
type: "array"
|
|
truncated:
|
|
type: "boolean"
|
|
keywords:
|
|
items:
|
|
type: "string"
|
|
type: "array"
|
|
functions:
|
|
items:
|
|
type: "string"
|
|
type: "array"
|
|
qqqTables:
|
|
items:
|
|
$ref: "#/components/schemas/SqlWorkbenchQqqTableV1"
|
|
type: "array"
|
|
cachedAt:
|
|
type: "string"
|
|
type: "object"
|
|
SqlWorkbenchSnapshotRequestV1:
|
|
properties:
|
|
executionUuid:
|
|
type: "string"
|
|
cellKey:
|
|
type: "string"
|
|
label:
|
|
nullable: true
|
|
type: "string"
|
|
type: "object"
|
|
SqlWorkbenchSnapshotResultV1:
|
|
properties:
|
|
columns:
|
|
items:
|
|
$ref: "#/components/schemas/SqlWorkbenchColumnV1"
|
|
type: "array"
|
|
rows:
|
|
$ref: "#/components/schemas/SqlWorkbenchRowsDataV1"
|
|
type: "object"
|
|
SqlWorkbenchSnapshotV1:
|
|
properties:
|
|
id:
|
|
format: "int64"
|
|
type: "integer"
|
|
cellKey:
|
|
nullable: true
|
|
type: "string"
|
|
executionUuid:
|
|
nullable: true
|
|
type: "string"
|
|
label:
|
|
nullable: true
|
|
type: "string"
|
|
backendName:
|
|
nullable: true
|
|
type: "string"
|
|
rowCount:
|
|
format: "int64"
|
|
type: "integer"
|
|
truncated:
|
|
type: "boolean"
|
|
createDate:
|
|
nullable: true
|
|
type: "string"
|
|
result:
|
|
$ref: "#/components/schemas/SqlWorkbenchSnapshotResultV1"
|
|
type: "object"
|
|
SqlWorkbenchSnapshotsV1:
|
|
properties:
|
|
snapshots:
|
|
items:
|
|
$ref: "#/components/schemas/SqlWorkbenchSnapshotV1"
|
|
type: "array"
|
|
type: "object"
|
|
SqlWorkbenchStatementKindV1:
|
|
enum:
|
|
- "READ"
|
|
- "EXPLAIN_ANALYZE"
|
|
- "WRITE"
|
|
- "DDL"
|
|
- "FORBIDDEN"
|
|
type: "string"
|
|
SqlWorkbenchStatementV1:
|
|
properties:
|
|
index:
|
|
format: "int64"
|
|
type: "integer"
|
|
kind:
|
|
$ref: "#/components/schemas/SqlWorkbenchStatementKindV1"
|
|
leadingKeyword:
|
|
nullable: true
|
|
type: "string"
|
|
text:
|
|
type: "string"
|
|
affectedRows:
|
|
format: "int64"
|
|
nullable: true
|
|
type: "integer"
|
|
type: "object"
|
|
SqlWorkbenchStatusV1:
|
|
enum:
|
|
- "SUCCEEDED"
|
|
- "FAILED"
|
|
- "TIMED_OUT"
|
|
- "CANCELLED"
|
|
- "REJECTED"
|
|
- "PREVIEW"
|
|
- "DRIFTED"
|
|
type: "string"
|
|
SqlWorkbenchValueV1:
|
|
anyOf:
|
|
- nullable: true
|
|
type: "string"
|
|
- type: "number"
|
|
- type: "boolean"
|
|
- $ref: "#/components/schemas/SqlWorkbenchBinaryValueV1"
|
|
- items:
|
|
$ref: "#/components/schemas/SqlWorkbenchValueV1"
|
|
type: "array"
|
|
- $ref: "#/components/schemas/SqlWorkbenchFreeObjectV1"
|
|
description: "JSON-safe JDBC value; null, scalar, binary preview, nested array\
|
|
\ or vendor JSON object."
|
|
SqlWorkbenchVersionSummaryV1:
|
|
properties:
|
|
versionNumber:
|
|
format: "int64"
|
|
type: "integer"
|
|
savedByName:
|
|
nullable: true
|
|
type: "string"
|
|
comment:
|
|
nullable: true
|
|
type: "string"
|
|
createDate:
|
|
type: "string"
|
|
type: "object"
|
|
SqlWorkbenchVersionV1:
|
|
properties:
|
|
versionNumber:
|
|
format: "int64"
|
|
type: "integer"
|
|
savedByName:
|
|
nullable: true
|
|
type: "string"
|
|
comment:
|
|
nullable: true
|
|
type: "string"
|
|
createDate:
|
|
type: "string"
|
|
notebook:
|
|
$ref: "#/components/schemas/SqlWorkbenchNotebookContentV1"
|
|
type: "object"
|
|
SqlWorkbenchVersionsV1:
|
|
properties:
|
|
versions:
|
|
items:
|
|
$ref: "#/components/schemas/SqlWorkbenchVersionSummaryV1"
|
|
type: "array"
|
|
type: "object"
|
|
securitySchemes:
|
|
sessionUuidCookie:
|
|
description: "The session cookie set by POST /qqq/v1/manageSession (web clients)."
|
|
in: "cookie"
|
|
name: "sessionUUID"
|
|
type: "apiKey"
|
|
bearerAuth:
|
|
bearerFormat: "JWT or session UUID"
|
|
description: "`Authorization: Bearer <token>`, where the token is either\n-\
|
|
\ an OAuth2 access token (a signed JWT) issued by the app's identity provider\
|
|
\ to the app's client,\n or to its native client (`values.nativeClientId`\
|
|
\ in GET /qqq/v1/metaData/authentication), for\n example from the device-authorization\
|
|
\ grant or auth-code + PKCE. It is verified against the\n provider's keys\
|
|
\ (issuer, audience, expiry, signature) and gives the same user and permissions\n\
|
|
\ as signing in on the web. When it expires (401), refresh it at the provider\
|
|
\ and retry; or\n- a session UUID returned by POST /qqq/v1/manageSession,\
|
|
\ which the server keeps refreshed."
|
|
scheme: "bearer"
|
|
type: "http"
|
|
oauth2:
|
|
description: "The app's OAuth2 / OpenID Connect provider. The real endpoints\
|
|
\ come from the provider's discovery\ndocument: `{values.baseUrl}.well-known/openid-configuration`,\
|
|
\ with values from\nGET /qqq/v1/metaData/authentication. Native clients use\
|
|
\ `values.nativeClientId` (a public client)\nwith auth-code + PKCE (loopback\
|
|
\ or custom-scheme redirect URI registered at the provider) or the\ndevice-authorization\
|
|
\ grant (`device_authorization_endpoint`, RFC 8628), then send the access\
|
|
\ token\nas `Authorization: Bearer`."
|
|
flows:
|
|
authorizationCode:
|
|
authorizationUrl: "/authorize"
|
|
scopes:
|
|
email: "Email address"
|
|
offline_access: "A refresh token, to renew the access token without signing\
|
|
\ in again"
|
|
openid: "OpenID Connect sign-in"
|
|
profile: "Name, username and groups (permissions come from the groups)"
|
|
tokenUrl: "/token"
|
|
type: "oauth2"
|
|
info:
|
|
contact:
|
|
email: "contact@kingsrook.com"
|
|
description: "Audited SQL execution and notebooks"
|
|
title: "QQQ Middleware API extension: sql-workbench"
|
|
version: "1.1.0"
|
|
openapi: "3.0.3"
|
|
paths:
|
|
/qqq/v1/sql-workbench/capabilities:
|
|
get:
|
|
description: "Get caller capabilities and configured limits. Requires SQL Workbench\
|
|
\ access; services enforce caller permissions, ownership, execution limits\
|
|
\ and audit."
|
|
operationId: "sqlWorkbenchGetCapabilities"
|
|
responses:
|
|
400:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/BasicErrorResponseV1"
|
|
description: "Invalid input or execution limit exceeded"
|
|
401:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/BasicErrorResponseV1"
|
|
description: "Sign in required"
|
|
403:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/BasicErrorResponseV1"
|
|
description: "Permission denied"
|
|
404:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/BasicErrorResponseV1"
|
|
description: "Missing or invisible resource"
|
|
200:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/SqlWorkbenchCapabilitiesV1"
|
|
description: "Successful Response"
|
|
409:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/BasicErrorResponseV1"
|
|
description: "Execution UUID already used"
|
|
429:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/BasicErrorResponseV1"
|
|
description: "Too many requests (code RATE_LIMITED); retry later."
|
|
security:
|
|
- sessionUuidCookie:
|
|
- "N/A"
|
|
- bearerAuth:
|
|
- "N/A"
|
|
- oauth2:
|
|
- "openid"
|
|
- "profile"
|
|
- "email"
|
|
summary: "Get caller capabilities and configured limits"
|
|
tags:
|
|
- "sql-workbench"
|
|
/qqq/v1/sql-workbench/schema/{backendName}:
|
|
get:
|
|
description: "Inspect a target backend schema. Requires SQL Workbench access;\
|
|
\ services enforce caller permissions, ownership, execution limits and audit."
|
|
operationId: "sqlWorkbenchGetSchema"
|
|
parameters:
|
|
- description: "Configured target backend name."
|
|
in: "path"
|
|
name: "backendName"
|
|
required: true
|
|
schema:
|
|
type: "string"
|
|
- description: "True to bypass the schema cache; default false."
|
|
in: "query"
|
|
name: "refresh"
|
|
required: false
|
|
schema:
|
|
type: "boolean"
|
|
responses:
|
|
400:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/BasicErrorResponseV1"
|
|
description: "Invalid input or execution limit exceeded"
|
|
401:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/BasicErrorResponseV1"
|
|
description: "Sign in required"
|
|
403:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/BasicErrorResponseV1"
|
|
description: "Permission denied"
|
|
404:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/BasicErrorResponseV1"
|
|
description: "Missing or invisible resource"
|
|
200:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/SqlWorkbenchSchemaV1"
|
|
description: "Successful Response"
|
|
409:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/BasicErrorResponseV1"
|
|
description: "Execution UUID already used"
|
|
429:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/BasicErrorResponseV1"
|
|
description: "Too many requests (code RATE_LIMITED); retry later."
|
|
security:
|
|
- sessionUuidCookie:
|
|
- "N/A"
|
|
- bearerAuth:
|
|
- "N/A"
|
|
- oauth2:
|
|
- "openid"
|
|
- "profile"
|
|
- "email"
|
|
summary: "Inspect a target backend schema"
|
|
tags:
|
|
- "sql-workbench"
|
|
/qqq/v1/sql-workbench/execute:
|
|
post:
|
|
description: "Execute read-only SQL or preview and confirm a gated write. Requires\
|
|
\ SQL Workbench access; services enforce caller permissions, ownership, execution\
|
|
\ limits and audit."
|
|
operationId: "sqlWorkbenchExecute"
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/SqlWorkbenchExecuteRequestV1"
|
|
required: false
|
|
responses:
|
|
400:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/BasicErrorResponseV1"
|
|
description: "Invalid input or execution limit exceeded"
|
|
401:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/BasicErrorResponseV1"
|
|
description: "Sign in required"
|
|
403:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/BasicErrorResponseV1"
|
|
description: "Permission denied"
|
|
404:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/BasicErrorResponseV1"
|
|
description: "Missing or invisible resource"
|
|
200:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/SqlWorkbenchExecutionV1"
|
|
description: "Successful Response"
|
|
409:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/BasicErrorResponseV1"
|
|
description: "Execution UUID already used"
|
|
429:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/BasicErrorResponseV1"
|
|
description: "Too many requests (code RATE_LIMITED); retry later."
|
|
security:
|
|
- sessionUuidCookie:
|
|
- "N/A"
|
|
- bearerAuth:
|
|
- "N/A"
|
|
- oauth2:
|
|
- "openid"
|
|
- "profile"
|
|
- "email"
|
|
summary: "Execute read-only SQL or preview and confirm a gated write"
|
|
tags:
|
|
- "sql-workbench"
|
|
/qqq/v1/sql-workbench/explain:
|
|
post:
|
|
description: "Explain SQL; ANALYZE remains subject to write gates. Requires\
|
|
\ SQL Workbench access; services enforce caller permissions, ownership, execution\
|
|
\ limits and audit."
|
|
operationId: "sqlWorkbenchExplain"
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/SqlWorkbenchExplainRequestV1"
|
|
required: false
|
|
responses:
|
|
400:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/BasicErrorResponseV1"
|
|
description: "Invalid input or execution limit exceeded"
|
|
401:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/BasicErrorResponseV1"
|
|
description: "Sign in required"
|
|
403:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/BasicErrorResponseV1"
|
|
description: "Permission denied"
|
|
404:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/BasicErrorResponseV1"
|
|
description: "Missing or invisible resource"
|
|
200:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/SqlWorkbenchExplainV1"
|
|
description: "Successful Response"
|
|
409:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/BasicErrorResponseV1"
|
|
description: "Execution UUID already used"
|
|
429:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/BasicErrorResponseV1"
|
|
description: "Too many requests (code RATE_LIMITED); retry later."
|
|
security:
|
|
- sessionUuidCookie:
|
|
- "N/A"
|
|
- bearerAuth:
|
|
- "N/A"
|
|
- oauth2:
|
|
- "openid"
|
|
- "profile"
|
|
- "email"
|
|
summary: "Explain SQL; ANALYZE remains subject to write gates"
|
|
tags:
|
|
- "sql-workbench"
|
|
/qqq/v1/sql-workbench/executions/{uuid}/rows:
|
|
get:
|
|
description: "Page or sort the caller's cached result. Requires SQL Workbench\
|
|
\ access; services enforce caller permissions, ownership, execution limits\
|
|
\ and audit."
|
|
operationId: "sqlWorkbenchGetRows"
|
|
parameters:
|
|
- description: "Execution UUID; case insensitive."
|
|
in: "path"
|
|
name: "uuid"
|
|
required: true
|
|
schema:
|
|
type: "string"
|
|
- description: "Rows to skip; default zero; negative values become zero."
|
|
in: "query"
|
|
name: "offset"
|
|
required: false
|
|
schema:
|
|
type: "integer"
|
|
- description: "Page size; nonpositive or absent uses the default. Rows cap\
|
|
\ at maxPageSize; history caps at 200 (default 50)."
|
|
in: "query"
|
|
name: "limit"
|
|
required: false
|
|
schema:
|
|
type: "integer"
|
|
- description: "Optional zero-based result column index."
|
|
in: "query"
|
|
name: "sort"
|
|
required: false
|
|
schema:
|
|
type: "integer"
|
|
- description: "Sort direction: desc (case insensitive) or asc (default)."
|
|
in: "query"
|
|
name: "dir"
|
|
required: false
|
|
schema:
|
|
type: "string"
|
|
responses:
|
|
400:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/BasicErrorResponseV1"
|
|
description: "Invalid input or execution limit exceeded"
|
|
401:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/BasicErrorResponseV1"
|
|
description: "Sign in required"
|
|
403:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/BasicErrorResponseV1"
|
|
description: "Permission denied"
|
|
404:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/BasicErrorResponseV1"
|
|
description: "Missing or invisible resource"
|
|
200:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/SqlWorkbenchRowsV1"
|
|
description: "Successful Response"
|
|
409:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/BasicErrorResponseV1"
|
|
description: "Execution UUID already used"
|
|
429:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/BasicErrorResponseV1"
|
|
description: "Too many requests (code RATE_LIMITED); retry later."
|
|
security:
|
|
- sessionUuidCookie:
|
|
- "N/A"
|
|
- bearerAuth:
|
|
- "N/A"
|
|
- oauth2:
|
|
- "openid"
|
|
- "profile"
|
|
- "email"
|
|
summary: "Page or sort the caller's cached result"
|
|
tags:
|
|
- "sql-workbench"
|
|
/qqq/v1/sql-workbench/executions/{uuid}/cancel:
|
|
post:
|
|
description: "Cancel the caller's running execution. Requires SQL Workbench\
|
|
\ access; services enforce caller permissions, ownership, execution limits\
|
|
\ and audit."
|
|
operationId: "sqlWorkbenchCancelExecution"
|
|
parameters:
|
|
- description: "Execution UUID; case insensitive."
|
|
in: "path"
|
|
name: "uuid"
|
|
required: true
|
|
schema:
|
|
type: "string"
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/SqlWorkbenchEmptyRequestV1"
|
|
required: false
|
|
responses:
|
|
400:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/BasicErrorResponseV1"
|
|
description: "Invalid input or execution limit exceeded"
|
|
401:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/BasicErrorResponseV1"
|
|
description: "Sign in required"
|
|
403:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/BasicErrorResponseV1"
|
|
description: "Permission denied"
|
|
404:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/BasicErrorResponseV1"
|
|
description: "Missing or invisible resource"
|
|
200:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/SqlWorkbenchCancelledV1"
|
|
description: "Successful Response"
|
|
409:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/BasicErrorResponseV1"
|
|
description: "Execution UUID already used"
|
|
429:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/BasicErrorResponseV1"
|
|
description: "Too many requests (code RATE_LIMITED); retry later."
|
|
security:
|
|
- sessionUuidCookie:
|
|
- "N/A"
|
|
- bearerAuth:
|
|
- "N/A"
|
|
- oauth2:
|
|
- "openid"
|
|
- "profile"
|
|
- "email"
|
|
summary: "Cancel the caller's running execution"
|
|
tags:
|
|
- "sql-workbench"
|
|
/qqq/v1/sql-workbench/history:
|
|
get:
|
|
description: "List the caller's recent audited executions. Requires SQL Workbench\
|
|
\ access; services enforce caller permissions, ownership, execution limits\
|
|
\ and audit."
|
|
operationId: "sqlWorkbenchGetHistory"
|
|
parameters:
|
|
- description: "Page size; nonpositive or absent uses the default. Rows cap\
|
|
\ at maxPageSize; history caps at 200 (default 50)."
|
|
in: "query"
|
|
name: "limit"
|
|
required: false
|
|
schema:
|
|
type: "integer"
|
|
- description: "Configured target backend name."
|
|
in: "query"
|
|
name: "backendName"
|
|
required: false
|
|
schema:
|
|
type: "string"
|
|
responses:
|
|
400:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/BasicErrorResponseV1"
|
|
description: "Invalid input or execution limit exceeded"
|
|
401:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/BasicErrorResponseV1"
|
|
description: "Sign in required"
|
|
403:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/BasicErrorResponseV1"
|
|
description: "Permission denied"
|
|
404:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/BasicErrorResponseV1"
|
|
description: "Missing or invisible resource"
|
|
200:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/SqlWorkbenchHistoryV1"
|
|
description: "Successful Response"
|
|
409:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/BasicErrorResponseV1"
|
|
description: "Execution UUID already used"
|
|
429:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/BasicErrorResponseV1"
|
|
description: "Too many requests (code RATE_LIMITED); retry later."
|
|
security:
|
|
- sessionUuidCookie:
|
|
- "N/A"
|
|
- bearerAuth:
|
|
- "N/A"
|
|
- oauth2:
|
|
- "openid"
|
|
- "profile"
|
|
- "email"
|
|
summary: "List the caller's recent audited executions"
|
|
tags:
|
|
- "sql-workbench"
|
|
/qqq/v1/sql-workbench/notebooks:
|
|
get:
|
|
description: "List visible personal or shared notebooks. Requires SQL Workbench\
|
|
\ access; services enforce caller permissions, ownership, execution limits\
|
|
\ and audit."
|
|
operationId: "sqlWorkbenchListNotebooks"
|
|
parameters:
|
|
- description: "mine (default) or shared notebook library."
|
|
in: "query"
|
|
name: "scope"
|
|
required: false
|
|
schema:
|
|
type: "string"
|
|
responses:
|
|
400:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/BasicErrorResponseV1"
|
|
description: "Invalid input or execution limit exceeded"
|
|
401:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/BasicErrorResponseV1"
|
|
description: "Sign in required"
|
|
403:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/BasicErrorResponseV1"
|
|
description: "Permission denied"
|
|
404:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/BasicErrorResponseV1"
|
|
description: "Missing or invisible resource"
|
|
200:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/SqlWorkbenchNotebooksV1"
|
|
description: "Successful Response"
|
|
409:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/BasicErrorResponseV1"
|
|
description: "Execution UUID already used"
|
|
429:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/BasicErrorResponseV1"
|
|
description: "Too many requests (code RATE_LIMITED); retry later."
|
|
security:
|
|
- sessionUuidCookie:
|
|
- "N/A"
|
|
- bearerAuth:
|
|
- "N/A"
|
|
- oauth2:
|
|
- "openid"
|
|
- "profile"
|
|
- "email"
|
|
summary: "List visible personal or shared notebooks"
|
|
tags:
|
|
- "sql-workbench"
|
|
post:
|
|
description: "Create a personal notebook. Requires SQL Workbench access; services\
|
|
\ enforce caller permissions, ownership, execution limits and audit."
|
|
operationId: "sqlWorkbenchCreateNotebook"
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/SqlWorkbenchNotebookRequestV1"
|
|
required: false
|
|
responses:
|
|
400:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/BasicErrorResponseV1"
|
|
description: "Invalid input or execution limit exceeded"
|
|
401:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/BasicErrorResponseV1"
|
|
description: "Sign in required"
|
|
403:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/BasicErrorResponseV1"
|
|
description: "Permission denied"
|
|
404:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/BasicErrorResponseV1"
|
|
description: "Missing or invisible resource"
|
|
200:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/SqlWorkbenchNotebookV1"
|
|
description: "Successful Response"
|
|
409:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/BasicErrorResponseV1"
|
|
description: "Execution UUID already used"
|
|
429:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/BasicErrorResponseV1"
|
|
description: "Too many requests (code RATE_LIMITED); retry later."
|
|
security:
|
|
- sessionUuidCookie:
|
|
- "N/A"
|
|
- bearerAuth:
|
|
- "N/A"
|
|
- oauth2:
|
|
- "openid"
|
|
- "profile"
|
|
- "email"
|
|
summary: "Create a personal notebook"
|
|
tags:
|
|
- "sql-workbench"
|
|
/qqq/v1/sql-workbench/notebooks/{id}:
|
|
delete:
|
|
description: "Delete an owned notebook. Requires SQL Workbench access; services\
|
|
\ enforce caller permissions, ownership, execution limits and audit."
|
|
operationId: "sqlWorkbenchDeleteNotebook"
|
|
parameters:
|
|
- description: "Notebook identifier."
|
|
in: "path"
|
|
name: "id"
|
|
required: true
|
|
schema:
|
|
type: "integer"
|
|
responses:
|
|
400:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/BasicErrorResponseV1"
|
|
description: "Invalid input or execution limit exceeded"
|
|
401:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/BasicErrorResponseV1"
|
|
description: "Sign in required"
|
|
403:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/BasicErrorResponseV1"
|
|
description: "Permission denied"
|
|
404:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/BasicErrorResponseV1"
|
|
description: "Missing or invisible resource"
|
|
200:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/SqlWorkbenchDeletedV1"
|
|
description: "Successful Response"
|
|
409:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/BasicErrorResponseV1"
|
|
description: "Execution UUID already used"
|
|
429:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/BasicErrorResponseV1"
|
|
description: "Too many requests (code RATE_LIMITED); retry later."
|
|
security:
|
|
- sessionUuidCookie:
|
|
- "N/A"
|
|
- bearerAuth:
|
|
- "N/A"
|
|
- oauth2:
|
|
- "openid"
|
|
- "profile"
|
|
- "email"
|
|
summary: "Delete an owned notebook"
|
|
tags:
|
|
- "sql-workbench"
|
|
get:
|
|
description: "Get a visible notebook and its cells. Requires SQL Workbench access;\
|
|
\ services enforce caller permissions, ownership, execution limits and audit."
|
|
operationId: "sqlWorkbenchGetNotebook"
|
|
parameters:
|
|
- description: "Notebook identifier."
|
|
in: "path"
|
|
name: "id"
|
|
required: true
|
|
schema:
|
|
type: "integer"
|
|
responses:
|
|
400:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/BasicErrorResponseV1"
|
|
description: "Invalid input or execution limit exceeded"
|
|
401:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/BasicErrorResponseV1"
|
|
description: "Sign in required"
|
|
403:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/BasicErrorResponseV1"
|
|
description: "Permission denied"
|
|
404:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/BasicErrorResponseV1"
|
|
description: "Missing or invisible resource"
|
|
200:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/SqlWorkbenchNotebookV1"
|
|
description: "Successful Response"
|
|
409:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/BasicErrorResponseV1"
|
|
description: "Execution UUID already used"
|
|
429:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/BasicErrorResponseV1"
|
|
description: "Too many requests (code RATE_LIMITED); retry later."
|
|
security:
|
|
- sessionUuidCookie:
|
|
- "N/A"
|
|
- bearerAuth:
|
|
- "N/A"
|
|
- oauth2:
|
|
- "openid"
|
|
- "profile"
|
|
- "email"
|
|
summary: "Get a visible notebook and its cells"
|
|
tags:
|
|
- "sql-workbench"
|
|
put:
|
|
description: "Update an owned notebook and record a version. Requires SQL Workbench\
|
|
\ access; services enforce caller permissions, ownership, execution limits\
|
|
\ and audit."
|
|
operationId: "sqlWorkbenchUpdateNotebook"
|
|
parameters:
|
|
- description: "Notebook identifier."
|
|
in: "path"
|
|
name: "id"
|
|
required: true
|
|
schema:
|
|
type: "integer"
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/SqlWorkbenchNotebookRequestV1"
|
|
required: false
|
|
responses:
|
|
400:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/BasicErrorResponseV1"
|
|
description: "Invalid input or execution limit exceeded"
|
|
401:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/BasicErrorResponseV1"
|
|
description: "Sign in required"
|
|
403:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/BasicErrorResponseV1"
|
|
description: "Permission denied"
|
|
404:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/BasicErrorResponseV1"
|
|
description: "Missing or invisible resource"
|
|
200:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/SqlWorkbenchNotebookV1"
|
|
description: "Successful Response"
|
|
409:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/BasicErrorResponseV1"
|
|
description: "Execution UUID already used"
|
|
429:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/BasicErrorResponseV1"
|
|
description: "Too many requests (code RATE_LIMITED); retry later."
|
|
security:
|
|
- sessionUuidCookie:
|
|
- "N/A"
|
|
- bearerAuth:
|
|
- "N/A"
|
|
- oauth2:
|
|
- "openid"
|
|
- "profile"
|
|
- "email"
|
|
summary: "Update an owned notebook and record a version"
|
|
tags:
|
|
- "sql-workbench"
|
|
/qqq/v1/sql-workbench/notebooks/{id}/publish:
|
|
post:
|
|
description: "Publish or withdraw an owned notebook with share permission. Requires\
|
|
\ SQL Workbench access; services enforce caller permissions, ownership, execution\
|
|
\ limits and audit."
|
|
operationId: "sqlWorkbenchPublishNotebook"
|
|
parameters:
|
|
- description: "Notebook identifier."
|
|
in: "path"
|
|
name: "id"
|
|
required: true
|
|
schema:
|
|
type: "integer"
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/SqlWorkbenchPublishRequestV1"
|
|
required: false
|
|
responses:
|
|
400:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/BasicErrorResponseV1"
|
|
description: "Invalid input or execution limit exceeded"
|
|
401:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/BasicErrorResponseV1"
|
|
description: "Sign in required"
|
|
403:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/BasicErrorResponseV1"
|
|
description: "Permission denied"
|
|
404:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/BasicErrorResponseV1"
|
|
description: "Missing or invisible resource"
|
|
200:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/SqlWorkbenchNotebookV1"
|
|
description: "Successful Response"
|
|
409:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/BasicErrorResponseV1"
|
|
description: "Execution UUID already used"
|
|
429:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/BasicErrorResponseV1"
|
|
description: "Too many requests (code RATE_LIMITED); retry later."
|
|
security:
|
|
- sessionUuidCookie:
|
|
- "N/A"
|
|
- bearerAuth:
|
|
- "N/A"
|
|
- oauth2:
|
|
- "openid"
|
|
- "profile"
|
|
- "email"
|
|
summary: "Publish or withdraw an owned notebook with share permission"
|
|
tags:
|
|
- "sql-workbench"
|
|
/qqq/v1/sql-workbench/notebooks/{id}/duplicate:
|
|
post:
|
|
description: "Make a personal copy of a visible notebook. Requires SQL Workbench\
|
|
\ access; services enforce caller permissions, ownership, execution limits\
|
|
\ and audit."
|
|
operationId: "sqlWorkbenchDuplicateNotebook"
|
|
parameters:
|
|
- description: "Notebook identifier."
|
|
in: "path"
|
|
name: "id"
|
|
required: true
|
|
schema:
|
|
type: "integer"
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/SqlWorkbenchEmptyRequestV1"
|
|
required: false
|
|
responses:
|
|
400:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/BasicErrorResponseV1"
|
|
description: "Invalid input or execution limit exceeded"
|
|
401:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/BasicErrorResponseV1"
|
|
description: "Sign in required"
|
|
403:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/BasicErrorResponseV1"
|
|
description: "Permission denied"
|
|
404:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/BasicErrorResponseV1"
|
|
description: "Missing or invisible resource"
|
|
200:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/SqlWorkbenchNotebookV1"
|
|
description: "Successful Response"
|
|
409:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/BasicErrorResponseV1"
|
|
description: "Execution UUID already used"
|
|
429:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/BasicErrorResponseV1"
|
|
description: "Too many requests (code RATE_LIMITED); retry later."
|
|
security:
|
|
- sessionUuidCookie:
|
|
- "N/A"
|
|
- bearerAuth:
|
|
- "N/A"
|
|
- oauth2:
|
|
- "openid"
|
|
- "profile"
|
|
- "email"
|
|
summary: "Make a personal copy of a visible notebook"
|
|
tags:
|
|
- "sql-workbench"
|
|
/qqq/v1/sql-workbench/notebooks/{id}/versions:
|
|
get:
|
|
description: "List versions of a visible notebook. Requires SQL Workbench access;\
|
|
\ services enforce caller permissions, ownership, execution limits and audit."
|
|
operationId: "sqlWorkbenchListVersions"
|
|
parameters:
|
|
- description: "Notebook identifier."
|
|
in: "path"
|
|
name: "id"
|
|
required: true
|
|
schema:
|
|
type: "integer"
|
|
responses:
|
|
400:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/BasicErrorResponseV1"
|
|
description: "Invalid input or execution limit exceeded"
|
|
401:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/BasicErrorResponseV1"
|
|
description: "Sign in required"
|
|
403:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/BasicErrorResponseV1"
|
|
description: "Permission denied"
|
|
404:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/BasicErrorResponseV1"
|
|
description: "Missing or invisible resource"
|
|
200:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/SqlWorkbenchVersionsV1"
|
|
description: "Successful Response"
|
|
409:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/BasicErrorResponseV1"
|
|
description: "Execution UUID already used"
|
|
429:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/BasicErrorResponseV1"
|
|
description: "Too many requests (code RATE_LIMITED); retry later."
|
|
security:
|
|
- sessionUuidCookie:
|
|
- "N/A"
|
|
- bearerAuth:
|
|
- "N/A"
|
|
- oauth2:
|
|
- "openid"
|
|
- "profile"
|
|
- "email"
|
|
summary: "List versions of a visible notebook"
|
|
tags:
|
|
- "sql-workbench"
|
|
/qqq/v1/sql-workbench/notebooks/{id}/versions/{n}:
|
|
get:
|
|
description: "Get a visible notebook version and saved content. Requires SQL\
|
|
\ Workbench access; services enforce caller permissions, ownership, execution\
|
|
\ limits and audit."
|
|
operationId: "sqlWorkbenchGetVersion"
|
|
parameters:
|
|
- description: "Notebook identifier."
|
|
in: "path"
|
|
name: "id"
|
|
required: true
|
|
schema:
|
|
type: "integer"
|
|
- description: "Notebook version number."
|
|
in: "path"
|
|
name: "n"
|
|
required: true
|
|
schema:
|
|
type: "integer"
|
|
responses:
|
|
400:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/BasicErrorResponseV1"
|
|
description: "Invalid input or execution limit exceeded"
|
|
401:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/BasicErrorResponseV1"
|
|
description: "Sign in required"
|
|
403:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/BasicErrorResponseV1"
|
|
description: "Permission denied"
|
|
404:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/BasicErrorResponseV1"
|
|
description: "Missing or invisible resource"
|
|
200:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/SqlWorkbenchVersionV1"
|
|
description: "Successful Response"
|
|
409:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/BasicErrorResponseV1"
|
|
description: "Execution UUID already used"
|
|
429:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/BasicErrorResponseV1"
|
|
description: "Too many requests (code RATE_LIMITED); retry later."
|
|
security:
|
|
- sessionUuidCookie:
|
|
- "N/A"
|
|
- bearerAuth:
|
|
- "N/A"
|
|
- oauth2:
|
|
- "openid"
|
|
- "profile"
|
|
- "email"
|
|
summary: "Get a visible notebook version and saved content"
|
|
tags:
|
|
- "sql-workbench"
|
|
/qqq/v1/sql-workbench/notebooks/{id}/versions/{n}/restore:
|
|
post:
|
|
description: "Restore an owned notebook version as a new version. Requires SQL\
|
|
\ Workbench access; services enforce caller permissions, ownership, execution\
|
|
\ limits and audit."
|
|
operationId: "sqlWorkbenchRestoreVersion"
|
|
parameters:
|
|
- description: "Notebook identifier."
|
|
in: "path"
|
|
name: "id"
|
|
required: true
|
|
schema:
|
|
type: "integer"
|
|
- description: "Notebook version number."
|
|
in: "path"
|
|
name: "n"
|
|
required: true
|
|
schema:
|
|
type: "integer"
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/SqlWorkbenchEmptyRequestV1"
|
|
required: false
|
|
responses:
|
|
400:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/BasicErrorResponseV1"
|
|
description: "Invalid input or execution limit exceeded"
|
|
401:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/BasicErrorResponseV1"
|
|
description: "Sign in required"
|
|
403:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/BasicErrorResponseV1"
|
|
description: "Permission denied"
|
|
404:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/BasicErrorResponseV1"
|
|
description: "Missing or invisible resource"
|
|
200:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/SqlWorkbenchNotebookV1"
|
|
description: "Successful Response"
|
|
409:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/BasicErrorResponseV1"
|
|
description: "Execution UUID already used"
|
|
429:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/BasicErrorResponseV1"
|
|
description: "Too many requests (code RATE_LIMITED); retry later."
|
|
security:
|
|
- sessionUuidCookie:
|
|
- "N/A"
|
|
- bearerAuth:
|
|
- "N/A"
|
|
- oauth2:
|
|
- "openid"
|
|
- "profile"
|
|
- "email"
|
|
summary: "Restore an owned notebook version as a new version"
|
|
tags:
|
|
- "sql-workbench"
|
|
/qqq/v1/sql-workbench/notebooks/{id}/snapshots:
|
|
get:
|
|
description: "List snapshots of a visible notebook. Requires SQL Workbench access;\
|
|
\ services enforce caller permissions, ownership, execution limits and audit."
|
|
operationId: "sqlWorkbenchListSnapshots"
|
|
parameters:
|
|
- description: "Notebook identifier."
|
|
in: "path"
|
|
name: "id"
|
|
required: true
|
|
schema:
|
|
type: "integer"
|
|
responses:
|
|
400:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/BasicErrorResponseV1"
|
|
description: "Invalid input or execution limit exceeded"
|
|
401:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/BasicErrorResponseV1"
|
|
description: "Sign in required"
|
|
403:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/BasicErrorResponseV1"
|
|
description: "Permission denied"
|
|
404:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/BasicErrorResponseV1"
|
|
description: "Missing or invisible resource"
|
|
200:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/SqlWorkbenchSnapshotsV1"
|
|
description: "Successful Response"
|
|
409:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/BasicErrorResponseV1"
|
|
description: "Execution UUID already used"
|
|
429:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/BasicErrorResponseV1"
|
|
description: "Too many requests (code RATE_LIMITED); retry later."
|
|
security:
|
|
- sessionUuidCookie:
|
|
- "N/A"
|
|
- bearerAuth:
|
|
- "N/A"
|
|
- oauth2:
|
|
- "openid"
|
|
- "profile"
|
|
- "email"
|
|
summary: "List snapshots of a visible notebook"
|
|
tags:
|
|
- "sql-workbench"
|
|
post:
|
|
description: "Pin the caller's cached result to an owned notebook. Requires\
|
|
\ SQL Workbench access; services enforce caller permissions, ownership, execution\
|
|
\ limits and audit."
|
|
operationId: "sqlWorkbenchCreateSnapshot"
|
|
parameters:
|
|
- description: "Notebook identifier."
|
|
in: "path"
|
|
name: "id"
|
|
required: true
|
|
schema:
|
|
type: "integer"
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/SqlWorkbenchSnapshotRequestV1"
|
|
required: false
|
|
responses:
|
|
400:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/BasicErrorResponseV1"
|
|
description: "Invalid input or execution limit exceeded"
|
|
401:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/BasicErrorResponseV1"
|
|
description: "Sign in required"
|
|
403:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/BasicErrorResponseV1"
|
|
description: "Permission denied"
|
|
404:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/BasicErrorResponseV1"
|
|
description: "Missing or invisible resource"
|
|
200:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/SqlWorkbenchSnapshotV1"
|
|
description: "Successful Response"
|
|
409:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/BasicErrorResponseV1"
|
|
description: "Execution UUID already used"
|
|
429:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/BasicErrorResponseV1"
|
|
description: "Too many requests (code RATE_LIMITED); retry later."
|
|
security:
|
|
- sessionUuidCookie:
|
|
- "N/A"
|
|
- bearerAuth:
|
|
- "N/A"
|
|
- oauth2:
|
|
- "openid"
|
|
- "profile"
|
|
- "email"
|
|
summary: "Pin the caller's cached result to an owned notebook"
|
|
tags:
|
|
- "sql-workbench"
|
|
/qqq/v1/sql-workbench/notebooks/{id}/snapshots/{snapshotId}:
|
|
delete:
|
|
description: "Delete a snapshot from an owned notebook. Requires SQL Workbench\
|
|
\ access; services enforce caller permissions, ownership, execution limits\
|
|
\ and audit."
|
|
operationId: "sqlWorkbenchDeleteSnapshot"
|
|
parameters:
|
|
- description: "Notebook identifier."
|
|
in: "path"
|
|
name: "id"
|
|
required: true
|
|
schema:
|
|
type: "integer"
|
|
- description: "Snapshot identifier."
|
|
in: "path"
|
|
name: "snapshotId"
|
|
required: true
|
|
schema:
|
|
type: "integer"
|
|
responses:
|
|
400:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/BasicErrorResponseV1"
|
|
description: "Invalid input or execution limit exceeded"
|
|
401:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/BasicErrorResponseV1"
|
|
description: "Sign in required"
|
|
403:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/BasicErrorResponseV1"
|
|
description: "Permission denied"
|
|
404:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/BasicErrorResponseV1"
|
|
description: "Missing or invisible resource"
|
|
200:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/SqlWorkbenchDeletedV1"
|
|
description: "Successful Response"
|
|
409:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/BasicErrorResponseV1"
|
|
description: "Execution UUID already used"
|
|
429:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/BasicErrorResponseV1"
|
|
description: "Too many requests (code RATE_LIMITED); retry later."
|
|
security:
|
|
- sessionUuidCookie:
|
|
- "N/A"
|
|
- bearerAuth:
|
|
- "N/A"
|
|
- oauth2:
|
|
- "openid"
|
|
- "profile"
|
|
- "email"
|
|
summary: "Delete a snapshot from an owned notebook"
|
|
tags:
|
|
- "sql-workbench"
|
|
/qqq/v1/sql-workbench/executions/{uuid}/export:
|
|
get:
|
|
description: "Export the caller's cached result as CSV, JSON or XLSX. Requires\
|
|
\ SQL Workbench access; services enforce caller permissions, ownership, execution\
|
|
\ limits and audit."
|
|
operationId: "sqlWorkbenchExportResult"
|
|
parameters:
|
|
- description: "Execution UUID; case insensitive."
|
|
in: "path"
|
|
name: "uuid"
|
|
required: true
|
|
schema:
|
|
type: "string"
|
|
- description: "csv (default), json or xlsx; case insensitive."
|
|
in: "query"
|
|
name: "format"
|
|
required: false
|
|
schema:
|
|
type: "string"
|
|
responses:
|
|
400:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/BasicErrorResponseV1"
|
|
description: "Invalid input or execution limit exceeded"
|
|
401:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/BasicErrorResponseV1"
|
|
description: "Sign in required"
|
|
403:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/BasicErrorResponseV1"
|
|
description: "Permission denied"
|
|
404:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/BasicErrorResponseV1"
|
|
description: "Missing or invisible resource"
|
|
200:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/SqlWorkbenchExportJsonV1"
|
|
application/vnd.openxmlformats-officedocument.spreadsheetml.sheet:
|
|
schema:
|
|
$ref: "#/components/schemas/SqlWorkbenchExportFileV1"
|
|
text/csv; charset=utf-8:
|
|
schema:
|
|
$ref: "#/components/schemas/SqlWorkbenchExportFileV1"
|
|
description: "Attachment named sql-result-{short UUID}.{format}; Cache-Control:\
|
|
\ no-store"
|
|
409:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/BasicErrorResponseV1"
|
|
description: "Execution UUID already used"
|
|
429:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/BasicErrorResponseV1"
|
|
description: "Too many requests (code RATE_LIMITED); retry later."
|
|
security:
|
|
- sessionUuidCookie:
|
|
- "N/A"
|
|
- bearerAuth:
|
|
- "N/A"
|
|
- oauth2:
|
|
- "openid"
|
|
- "profile"
|
|
- "email"
|
|
summary: "Export the caller's cached result as CSV, JSON or XLSX"
|
|
tags:
|
|
- "sql-workbench"
|
|
servers:
|
|
- description: "The QQQ server that serves this document (paths include /qqq/v1)."
|
|
url: "/"
|
|
tags:
|
|
- description: "Operations of the sql-workbench extension."
|
|
name: "sql-workbench"
|