* Move ws_specific to separate table * on delete cascade * feat: handle ws_specific on resource rename and delete Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * is_false never used --------- Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
26312 lines
727 KiB
YAML
26312 lines
727 KiB
YAML
openapi: "3.0.3"
|
|
|
|
info:
|
|
version: 1.679.0
|
|
title: Windmill API
|
|
|
|
contact:
|
|
name: Windmill Team
|
|
email: contact@windmill.dev
|
|
url: https://windmill.dev
|
|
|
|
license:
|
|
name: Apache 2.0
|
|
url: https://www.apache.org/licenses/LICENSE-2.0.html
|
|
|
|
x-logo:
|
|
url: https://windmill.dev/img/windmill.svg
|
|
externalDocs:
|
|
description: documentation portal
|
|
url: https://windmill.dev
|
|
|
|
servers:
|
|
- url: /api
|
|
|
|
security:
|
|
- bearerAuth: []
|
|
- cookieAuth: []
|
|
|
|
paths:
|
|
/version:
|
|
get:
|
|
summary: get backend version
|
|
operationId: backendVersion
|
|
tags:
|
|
- settings
|
|
responses:
|
|
"200":
|
|
description: git version of backend
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/health/status:
|
|
get:
|
|
summary: health status
|
|
description: |
|
|
Health status endpoint. Returns cached health status (database connectivity, worker count).
|
|
Cache TTL is fixed at 5 seconds. Use force=true query parameter to bypass cache.
|
|
Note: This endpoint is intentionally different from Kubernetes probes to avoid confusion.
|
|
For k8s liveness/readiness probes, use /version endpoint.
|
|
operationId: getHealthStatus
|
|
tags:
|
|
- health
|
|
security: []
|
|
parameters:
|
|
- name: force
|
|
in: query
|
|
description: Force a fresh check, bypassing the cache
|
|
required: false
|
|
schema:
|
|
type: boolean
|
|
default: false
|
|
responses:
|
|
"200":
|
|
description: server is healthy or degraded
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/HealthStatusResponse"
|
|
"503":
|
|
description: server is unhealthy (database unreachable)
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/HealthStatusResponse"
|
|
|
|
/health/detailed:
|
|
get:
|
|
summary: detailed health status
|
|
description: |
|
|
Returns detailed health information including database pool stats, worker details, and queue status.
|
|
Requires authentication. Use for monitoring dashboards and debugging.
|
|
This endpoint always returns fresh data (no caching).
|
|
operationId: getHealthDetailed
|
|
tags:
|
|
- health
|
|
responses:
|
|
"200":
|
|
description: server is healthy or degraded
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/DetailedHealthResponse"
|
|
"503":
|
|
description: server is unhealthy (database unreachable)
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/DetailedHealthResponse"
|
|
|
|
/uptodate:
|
|
get:
|
|
summary: is backend up to date
|
|
operationId: backendUptodate
|
|
tags:
|
|
- settings
|
|
responses:
|
|
"200":
|
|
description: is backend up to date
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/ee_license:
|
|
get:
|
|
summary: get license id
|
|
operationId: getLicenseId
|
|
tags:
|
|
- settings
|
|
responses:
|
|
"200":
|
|
description: get license id (empty if not ee)
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/inkeep:
|
|
post:
|
|
summary: query Windmill AI documentation assistant (EE only)
|
|
operationId: queryDocumentation
|
|
x-mcp-tool: true
|
|
tags:
|
|
- documentation
|
|
requestBody:
|
|
description: query to send to the AI documentation assistant
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
query:
|
|
type: string
|
|
description: The documentation query to send to the AI assistant
|
|
required:
|
|
- query
|
|
responses:
|
|
"200":
|
|
description: AI documentation assistant response
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
description: Response from Inkeep service
|
|
"403":
|
|
description: Enterprise Edition required
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/openapi.yaml:
|
|
get:
|
|
summary: get openapi yaml spec
|
|
operationId: getOpenApiYaml
|
|
tags:
|
|
- settings
|
|
responses:
|
|
"200":
|
|
description: openapi yaml file content
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/audit/get/{id}:
|
|
get:
|
|
summary: get audit log (requires admin privilege)
|
|
operationId: getAuditLog
|
|
tags:
|
|
- audit
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/PathId"
|
|
responses:
|
|
"200":
|
|
description: an audit log
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/AuditLog"
|
|
|
|
/w/{workspace}/audit/list:
|
|
get:
|
|
summary: list audit logs (requires admin privilege)
|
|
operationId: listAuditLogs
|
|
tags:
|
|
- audit
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Page"
|
|
- $ref: "#/components/parameters/PerPage"
|
|
- $ref: "#/components/parameters/Before"
|
|
- $ref: "#/components/parameters/After"
|
|
- $ref: "#/components/parameters/Username"
|
|
- $ref: "#/components/parameters/Operation"
|
|
- name: operations
|
|
in: query
|
|
description: comma separated list of exact operations to include
|
|
schema:
|
|
type: string
|
|
- name: exclude_operations
|
|
in: query
|
|
description: comma separated list of operations to exclude
|
|
schema:
|
|
type: string
|
|
- $ref: "#/components/parameters/ResourceName"
|
|
- $ref: "#/components/parameters/ActionKind"
|
|
- name: all_workspaces
|
|
in: query
|
|
description: get audit logs for all workspaces
|
|
schema:
|
|
type: boolean
|
|
|
|
responses:
|
|
"200":
|
|
description: a list of audit logs
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/AuditLog"
|
|
|
|
/auth/login:
|
|
post:
|
|
security: []
|
|
summary: login with password
|
|
operationId: login
|
|
tags:
|
|
- user
|
|
requestBody:
|
|
description: credentials
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/Login"
|
|
|
|
responses:
|
|
"200":
|
|
description: >
|
|
Successfully authenticated. The session ID is returned in a cookie
|
|
named `token` and as plaintext response. Preferred method of
|
|
authorization is through the bearer token. The cookie is only for
|
|
browser convenience.
|
|
|
|
headers:
|
|
Set-Cookie:
|
|
schema:
|
|
type: string
|
|
example: token=abcde12345; Path=/; HttpOnly
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/auth/logout:
|
|
post:
|
|
security: []
|
|
summary: logout
|
|
operationId: logout
|
|
tags:
|
|
- user
|
|
|
|
responses:
|
|
"200":
|
|
description: clear cookies and clear token (if applicable)
|
|
headers:
|
|
Set-Cookie:
|
|
schema:
|
|
type: string
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/auth/is_smtp_configured:
|
|
get:
|
|
security: []
|
|
summary: check if SMTP is configured for password reset
|
|
operationId: isSmtpConfigured
|
|
tags:
|
|
- user
|
|
responses:
|
|
"200":
|
|
description: returns true if SMTP is configured
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: boolean
|
|
|
|
/auth/request_password_reset:
|
|
post:
|
|
security: []
|
|
summary: request password reset email
|
|
operationId: requestPasswordReset
|
|
tags:
|
|
- user
|
|
requestBody:
|
|
description: email to send password reset link to
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- email
|
|
properties:
|
|
email:
|
|
type: string
|
|
format: email
|
|
responses:
|
|
"200":
|
|
description: password reset email sent (if user exists)
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/PasswordResetResponse"
|
|
"400":
|
|
description: SMTP not configured
|
|
|
|
/auth/reset_password:
|
|
post:
|
|
security: []
|
|
summary: reset password using token
|
|
operationId: resetPassword
|
|
tags:
|
|
- user
|
|
requestBody:
|
|
description: token and new password
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- token
|
|
- new_password
|
|
properties:
|
|
token:
|
|
type: string
|
|
new_password:
|
|
type: string
|
|
responses:
|
|
"200":
|
|
description: password reset successfully
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/PasswordResetResponse"
|
|
"400":
|
|
description: invalid or expired token
|
|
|
|
/w/{workspace}/users/get/{username}:
|
|
get:
|
|
summary: get user (require admin privilege)
|
|
operationId: getUser
|
|
tags:
|
|
- user
|
|
- admin
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- name: username
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
responses:
|
|
"200":
|
|
description: user created
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/User"
|
|
|
|
/w/{workspace}/users/update/{username}:
|
|
post:
|
|
summary: update user (require admin privilege)
|
|
operationId: updateUser
|
|
tags:
|
|
- user
|
|
- admin
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- name: username
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
requestBody:
|
|
description: new user
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/EditWorkspaceUser"
|
|
responses:
|
|
"200":
|
|
description: edited user
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/users/is_owner/{path}:
|
|
get:
|
|
summary: is owner of path
|
|
operationId: isOwnerOfPath
|
|
tags:
|
|
- user
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Path"
|
|
responses:
|
|
"200":
|
|
description: is owner
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: boolean
|
|
|
|
/users/setpassword:
|
|
post:
|
|
summary: set password
|
|
operationId: setPassword
|
|
tags:
|
|
- user
|
|
requestBody:
|
|
description: set password
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
password:
|
|
type: string
|
|
required:
|
|
- password
|
|
responses:
|
|
"200":
|
|
description: password set
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/users/set_password_of/{user}:
|
|
post:
|
|
summary: set password for a specific user (require super admin)
|
|
operationId: setPasswordForUser
|
|
tags:
|
|
- user
|
|
parameters:
|
|
- name: user
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
requestBody:
|
|
description: set password
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
password:
|
|
type: string
|
|
required:
|
|
- password
|
|
responses:
|
|
"200":
|
|
description: password set
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/users/set_login_type/{user}:
|
|
post:
|
|
summary: set login type for a specific user (require super admin)
|
|
operationId: setLoginTypeForUser
|
|
tags:
|
|
- user
|
|
parameters:
|
|
- name: user
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
requestBody:
|
|
description: set login type
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
login_type:
|
|
type: string
|
|
required:
|
|
- login_type
|
|
responses:
|
|
"200":
|
|
description: login type set
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/users/create:
|
|
post:
|
|
summary: create user
|
|
operationId: createUserGlobally
|
|
tags:
|
|
- user
|
|
requestBody:
|
|
description: user info
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
email:
|
|
type: string
|
|
password:
|
|
type: string
|
|
super_admin:
|
|
type: boolean
|
|
name:
|
|
type: string
|
|
company:
|
|
type: string
|
|
skip_email:
|
|
type: boolean
|
|
description: Skip sending email notifications to the user
|
|
required:
|
|
- email
|
|
- password
|
|
- super_admin
|
|
responses:
|
|
"201":
|
|
description: user created
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/users/update/{email}:
|
|
post:
|
|
summary: global update user (require super admin)
|
|
operationId: globalUserUpdate
|
|
tags:
|
|
- user
|
|
parameters:
|
|
- name: email
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
requestBody:
|
|
description: new user info
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
is_super_admin:
|
|
type: boolean
|
|
is_devops:
|
|
type: boolean
|
|
name:
|
|
type: string
|
|
disabled:
|
|
type: boolean
|
|
responses:
|
|
"200":
|
|
description: user updated
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/users/username_info/{email}:
|
|
get:
|
|
summary: global username info (require super admin)
|
|
operationId: globalUsernameInfo
|
|
tags:
|
|
- user
|
|
parameters:
|
|
- name: email
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
responses:
|
|
"200":
|
|
description: user renamed
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
username:
|
|
type: string
|
|
workspace_usernames:
|
|
type: array
|
|
items:
|
|
type: object
|
|
properties:
|
|
workspace_id:
|
|
type: string
|
|
username:
|
|
type: string
|
|
required:
|
|
- workspace_id
|
|
- username
|
|
required:
|
|
- username
|
|
- workspace_usernames
|
|
|
|
/users/rename/{email}:
|
|
post:
|
|
summary: global rename user (require super admin)
|
|
operationId: globalUserRename
|
|
tags:
|
|
- user
|
|
parameters:
|
|
- name: email
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
requestBody:
|
|
description: new username
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
new_username:
|
|
type: string
|
|
required:
|
|
- new_username
|
|
responses:
|
|
"200":
|
|
description: user renamed
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/users/delete/{email}:
|
|
delete:
|
|
summary: global delete user (require super admin)
|
|
operationId: globalUserDelete
|
|
tags:
|
|
- user
|
|
parameters:
|
|
- name: email
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
responses:
|
|
"200":
|
|
description: user deleted
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
/users/overwrite:
|
|
post:
|
|
summary: global overwrite users (require super admin and EE)
|
|
operationId: globalUsersOverwrite
|
|
tags:
|
|
- user
|
|
requestBody:
|
|
description: List of users
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/ExportedUser"
|
|
responses:
|
|
"200":
|
|
description: Success message
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/users/export:
|
|
get:
|
|
summary: global export users (require super admin and EE)
|
|
operationId: globalUsersExport
|
|
tags:
|
|
- user
|
|
responses:
|
|
"200":
|
|
description: exported users
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/ExportedUser"
|
|
|
|
/users/onboarding:
|
|
post:
|
|
summary: Submit user onboarding data
|
|
operationId: submitOnboardingData
|
|
tags:
|
|
- user
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
touch_point:
|
|
type: string
|
|
use_case:
|
|
type: string
|
|
responses:
|
|
"200":
|
|
description: Onboarding data submitted successfully
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/users/delete/{username}:
|
|
delete:
|
|
summary: delete user (require admin privilege)
|
|
operationId: deleteUser
|
|
tags:
|
|
- user
|
|
- admin
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- name: username
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
responses:
|
|
"200":
|
|
description: delete user
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
/w/{workspace}/users/convert_to_group/{username}:
|
|
post:
|
|
summary: convert manual user to group user (require admin privilege)
|
|
operationId: convertUserToGroup
|
|
tags:
|
|
- user
|
|
- admin
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- name: username
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
responses:
|
|
"200":
|
|
description: convert user to group user
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/github_app/connected_repositories:
|
|
get:
|
|
summary: get connected repositories
|
|
operationId: getGlobalConnectedRepositories
|
|
tags:
|
|
- Git Sync
|
|
parameters:
|
|
- name: page
|
|
in: query
|
|
description: Page number for pagination (default 1)
|
|
required: false
|
|
schema:
|
|
type: integer
|
|
default: 1
|
|
responses:
|
|
"200":
|
|
description: connected repositories
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/GithubInstallations"
|
|
|
|
/workspaces/list:
|
|
get:
|
|
summary: list all workspaces visible to me
|
|
operationId: listWorkspaces
|
|
tags:
|
|
- workspace
|
|
responses:
|
|
"200":
|
|
description: all workspaces
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/Workspace"
|
|
|
|
/workspaces/allowed_domain_auto_invite:
|
|
get:
|
|
summary: is domain allowed for auto invi
|
|
operationId: isDomainAllowed
|
|
tags:
|
|
- workspace
|
|
responses:
|
|
"200":
|
|
description: domain allowed or not
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: boolean
|
|
|
|
/workspaces/users:
|
|
get:
|
|
summary: list all workspaces visible to me with user info
|
|
operationId: listUserWorkspaces
|
|
tags:
|
|
- workspace
|
|
responses:
|
|
"200":
|
|
description: workspace with associated username
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/UserWorkspaceList"
|
|
|
|
/w/{workspace}/workspaces/get_as_superadmin:
|
|
get:
|
|
summary: get workspace as super admin (require to be super admin)
|
|
operationId: getWorkspaceAsSuperAdmin
|
|
tags:
|
|
- workspace
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
responses:
|
|
"200":
|
|
description: workspace
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/Workspace"
|
|
|
|
/workspaces/list_as_superadmin:
|
|
get:
|
|
summary: list all workspaces as super admin (require to be super admin)
|
|
operationId: listWorkspacesAsSuperAdmin
|
|
tags:
|
|
- workspace
|
|
parameters:
|
|
- $ref: "#/components/parameters/Page"
|
|
- $ref: "#/components/parameters/PerPage"
|
|
responses:
|
|
"200":
|
|
description: workspaces
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/Workspace"
|
|
|
|
/workspaces/create:
|
|
post:
|
|
summary: create workspace
|
|
operationId: createWorkspace
|
|
tags:
|
|
- workspace
|
|
requestBody:
|
|
description: new token
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/CreateWorkspace"
|
|
responses:
|
|
"201":
|
|
description: token created
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/workspaces/create_workspace_fork_branch:
|
|
post:
|
|
summary: create forked workspace branch with git sync
|
|
operationId: createWorkspaceForkGitBranch
|
|
tags:
|
|
- workspace
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
requestBody:
|
|
description: new forked workspace
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/CreateWorkspaceFork"
|
|
responses:
|
|
"201":
|
|
description: forked workspace branch created
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
type: string
|
|
format: uuid
|
|
|
|
/w/{workspace}/workspaces/create_fork:
|
|
post:
|
|
summary: create forked workspace
|
|
operationId: createWorkspaceFork
|
|
tags:
|
|
- workspace
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
requestBody:
|
|
description: new forked workspace
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/CreateWorkspaceFork"
|
|
responses:
|
|
"201":
|
|
description: forked workspace created
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/workspaces/exists:
|
|
post:
|
|
summary: exists workspace
|
|
operationId: existsWorkspace
|
|
tags:
|
|
- workspace
|
|
requestBody:
|
|
description: id of workspace
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
id:
|
|
type: string
|
|
required:
|
|
- id
|
|
responses:
|
|
"200":
|
|
description: status
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: boolean
|
|
|
|
/workspaces/exists_username:
|
|
post:
|
|
summary: exists username
|
|
operationId: existsUsername
|
|
tags:
|
|
- workspace
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
id:
|
|
type: string
|
|
username:
|
|
type: string
|
|
required:
|
|
- id
|
|
- username
|
|
responses:
|
|
"200":
|
|
description: status
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: boolean
|
|
|
|
/settings/refresh_custom_instance_user_pwd:
|
|
post:
|
|
summary: Refreshes the password for the custom_instance_user
|
|
operationId: refreshCustomInstanceUserPwd
|
|
tags:
|
|
- setting
|
|
responses:
|
|
"200":
|
|
description: Success
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
|
|
/settings/list_custom_instance_pg_databases:
|
|
post:
|
|
summary: Returns the set-up statuses of custom instance pg databases
|
|
operationId: listCustomInstanceDbs
|
|
tags:
|
|
- setting
|
|
responses:
|
|
"200":
|
|
description: Statuses of all custom instance dbs
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
additionalProperties:
|
|
$ref: "#/components/schemas/CustomInstanceDb"
|
|
|
|
/settings/setup_custom_instance_pg_database/{name}:
|
|
post:
|
|
summary: Runs CREATE DATABASE on the Windmill Postgres and grants access to the custom_instance_user
|
|
operationId: setupCustomInstanceDb
|
|
tags:
|
|
- setting
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
tag:
|
|
$ref: "#/components/schemas/CustomInstanceDbTag"
|
|
parameters:
|
|
- in: path
|
|
name: name
|
|
required: true
|
|
schema:
|
|
type: string
|
|
description: The name of the database to create
|
|
responses:
|
|
"200":
|
|
description: status
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/CustomInstanceDb"
|
|
|
|
/settings/drop_custom_instance_pg_database/{name}:
|
|
post:
|
|
summary: Drops a custom instance database (superadmin only, irreversible)
|
|
operationId: dropCustomInstanceDb
|
|
tags:
|
|
- setting
|
|
parameters:
|
|
- in: path
|
|
name: name
|
|
required: true
|
|
schema:
|
|
type: string
|
|
description: The name of the database to drop
|
|
responses:
|
|
"200":
|
|
description: status
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/settings/global/{key}:
|
|
get:
|
|
summary: get global settings
|
|
operationId: getGlobal
|
|
tags:
|
|
- setting
|
|
parameters:
|
|
- $ref: "#/components/parameters/Key"
|
|
responses:
|
|
"200":
|
|
description: status
|
|
content:
|
|
application/json:
|
|
schema: {}
|
|
|
|
post:
|
|
summary: post global settings
|
|
operationId: setGlobal
|
|
tags:
|
|
- setting
|
|
parameters:
|
|
- $ref: "#/components/parameters/Key"
|
|
requestBody:
|
|
description: value set
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
value: {}
|
|
|
|
responses:
|
|
"200":
|
|
description: status
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/settings/local:
|
|
get:
|
|
summary: get local settings
|
|
operationId: getLocal
|
|
tags:
|
|
- setting
|
|
responses:
|
|
"200":
|
|
description: status
|
|
content:
|
|
application/json:
|
|
schema: {}
|
|
|
|
/settings/test_smtp:
|
|
post:
|
|
summary: test smtp
|
|
operationId: testSmtp
|
|
tags:
|
|
- setting
|
|
requestBody:
|
|
description: test smtp payload
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
to:
|
|
type: string
|
|
smtp:
|
|
type: object
|
|
properties:
|
|
host:
|
|
type: string
|
|
username:
|
|
type: string
|
|
password:
|
|
type: string
|
|
port:
|
|
type: integer
|
|
from:
|
|
type: string
|
|
tls_implicit:
|
|
type: boolean
|
|
disable_tls:
|
|
type: boolean
|
|
required:
|
|
- host
|
|
- username
|
|
- password
|
|
- port
|
|
- from
|
|
- tls_implicit
|
|
- disable_tls
|
|
required:
|
|
- to
|
|
- smtp
|
|
responses:
|
|
"200":
|
|
description: status
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/settings/test_critical_channels:
|
|
post:
|
|
summary: test critical channels
|
|
operationId: testCriticalChannels
|
|
tags:
|
|
- setting
|
|
requestBody:
|
|
description: test critical channel payload
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
type: object
|
|
properties:
|
|
email:
|
|
type: string
|
|
slack_channel:
|
|
type: string
|
|
responses:
|
|
"200":
|
|
description: status
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/settings/critical_alerts:
|
|
get:
|
|
summary: Get all critical alerts
|
|
operationId: getCriticalAlerts
|
|
tags:
|
|
- setting
|
|
parameters:
|
|
- in: query
|
|
name: page
|
|
schema:
|
|
type: integer
|
|
default: 1
|
|
description: The page number to retrieve (minimum value is 1)
|
|
- in: query
|
|
name: page_size
|
|
schema:
|
|
type: integer
|
|
default: 10
|
|
maximum: 100
|
|
description: Number of alerts per page (maximum is 100)
|
|
- in: query
|
|
name: acknowledged
|
|
schema:
|
|
type: boolean
|
|
nullable: true
|
|
description: Filter by acknowledgment status; true for acknowledged, false for unacknowledged, and omit for all alerts
|
|
responses:
|
|
"200":
|
|
description: Successfully retrieved all critical alerts
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
alerts:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/CriticalAlert"
|
|
total_rows:
|
|
type: integer
|
|
description: Total number of rows matching the query.
|
|
example: 100
|
|
total_pages:
|
|
type: integer
|
|
description: Total number of pages based on the page size.
|
|
example: 10
|
|
|
|
/settings/critical_alerts/{id}/acknowledge:
|
|
post:
|
|
summary: Acknowledge a critical alert
|
|
operationId: acknowledgeCriticalAlert
|
|
tags:
|
|
- setting
|
|
parameters:
|
|
- in: path
|
|
name: id
|
|
required: true
|
|
schema:
|
|
type: integer
|
|
description: The ID of the critical alert to acknowledge
|
|
responses:
|
|
"200":
|
|
description: Successfully acknowledged the critical alert
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: string
|
|
example: "Critical alert acknowledged"
|
|
|
|
/settings/critical_alerts/acknowledge_all:
|
|
post:
|
|
summary: Acknowledge all unacknowledged critical alerts
|
|
operationId: acknowledgeAllCriticalAlerts
|
|
tags:
|
|
- setting
|
|
responses:
|
|
"200":
|
|
description: Successfully acknowledged all unacknowledged critical alerts.
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: string
|
|
example: "All unacknowledged critical alerts acknowledged"
|
|
|
|
/settings/test_license_key:
|
|
post:
|
|
summary: test license key
|
|
operationId: testLicenseKey
|
|
tags:
|
|
- setting
|
|
requestBody:
|
|
description: test license key
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
license_key:
|
|
type: string
|
|
required:
|
|
- license_key
|
|
responses:
|
|
"200":
|
|
description: status
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
# pub use_ssl: Option<bool>,
|
|
# #[serde(rename = "accountName")]
|
|
# pub account_name: String,
|
|
# #[serde(rename = "tenantId")]
|
|
# pub tenant_id: Option<String>,
|
|
# #[serde(rename = "clientId")]
|
|
# pub client_id: Option<String>,
|
|
# #[serde(rename = "containerName")]
|
|
# pub container_name: String,
|
|
# #[serde(rename = "accessKey")]
|
|
# pub access_key: Option<String>,
|
|
|
|
/settings/test_object_storage_config:
|
|
post:
|
|
summary: test object storage config
|
|
operationId: testObjectStorageConfig
|
|
tags:
|
|
- setting
|
|
requestBody:
|
|
description: test object storage config
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
additionalProperties: true
|
|
responses:
|
|
"200":
|
|
description: status
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/settings/object_storage_usage:
|
|
get:
|
|
summary: get current or last object storage usage computation (null if never run)
|
|
operationId: getObjectStorageUsage
|
|
tags:
|
|
- setting
|
|
responses:
|
|
"200":
|
|
description: current or last storage-usage computation state
|
|
content:
|
|
application/json:
|
|
schema:
|
|
nullable: true
|
|
type: object
|
|
properties:
|
|
running:
|
|
type: boolean
|
|
started_at:
|
|
type: string
|
|
format: date-time
|
|
finished_at:
|
|
type: string
|
|
format: date-time
|
|
nullable: true
|
|
current_prefix:
|
|
type: string
|
|
nullable: true
|
|
scanned_objects:
|
|
type: integer
|
|
format: int64
|
|
folders:
|
|
type: array
|
|
items:
|
|
type: object
|
|
properties:
|
|
prefix:
|
|
type: string
|
|
size:
|
|
type: integer
|
|
format: int64
|
|
partial:
|
|
type: boolean
|
|
required:
|
|
- prefix
|
|
- size
|
|
error:
|
|
type: string
|
|
nullable: true
|
|
required:
|
|
- running
|
|
- started_at
|
|
- scanned_objects
|
|
- folders
|
|
post:
|
|
summary: start a background computation of object storage usage by top-level folder
|
|
operationId: computeObjectStorageUsage
|
|
tags:
|
|
- setting
|
|
responses:
|
|
"202":
|
|
description: computation started
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/settings/run_log_cleanup:
|
|
post:
|
|
summary: start a manual cleanup of expired logs from object storage
|
|
operationId: runLogCleanup
|
|
tags:
|
|
- setting
|
|
responses:
|
|
"202":
|
|
description: cleanup started
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/settings/log_cleanup_status:
|
|
get:
|
|
summary: get status of the manual log cleanup task
|
|
operationId: getLogCleanupStatus
|
|
tags:
|
|
- setting
|
|
responses:
|
|
"200":
|
|
description: current or last log cleanup status (null if never run)
|
|
content:
|
|
application/json:
|
|
schema:
|
|
nullable: true
|
|
type: object
|
|
properties:
|
|
running:
|
|
type: boolean
|
|
started_at:
|
|
type: string
|
|
format: date-time
|
|
finished_at:
|
|
type: string
|
|
format: date-time
|
|
nullable: true
|
|
phase:
|
|
type: string
|
|
total_service:
|
|
type: integer
|
|
format: int64
|
|
processed_service:
|
|
type: integer
|
|
format: int64
|
|
total_jobs:
|
|
type: integer
|
|
format: int64
|
|
processed_jobs:
|
|
type: integer
|
|
format: int64
|
|
s3_deleted:
|
|
type: integer
|
|
format: int64
|
|
orphans_scanned:
|
|
type: integer
|
|
format: int64
|
|
orphans_deleted:
|
|
type: integer
|
|
format: int64
|
|
errors:
|
|
type: integer
|
|
format: int64
|
|
last_error:
|
|
type: string
|
|
nullable: true
|
|
required:
|
|
- running
|
|
- started_at
|
|
- phase
|
|
- total_service
|
|
- processed_service
|
|
- total_jobs
|
|
- processed_jobs
|
|
- s3_deleted
|
|
- orphans_scanned
|
|
- orphans_deleted
|
|
- errors
|
|
|
|
/settings/send_stats:
|
|
post:
|
|
summary: send stats
|
|
operationId: sendStats
|
|
tags:
|
|
- setting
|
|
responses:
|
|
"200":
|
|
description: status
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/settings/restart_worker_group/{worker_group}:
|
|
post:
|
|
summary: restart worker group
|
|
description: Send a restart signal to all workers in the specified worker group. Workers will gracefully shut down and are expected to be restarted by their supervisor. Requires devops role.
|
|
operationId: restartWorkerGroup
|
|
tags:
|
|
- setting
|
|
parameters:
|
|
- name: worker_group
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
description: the name of the worker group to restart
|
|
responses:
|
|
"200":
|
|
description: restart signal sent
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/settings/get_stats:
|
|
get:
|
|
summary: get telemetry stats with HMAC signature (EE only)
|
|
operationId: getStats
|
|
tags:
|
|
- setting
|
|
responses:
|
|
"200":
|
|
description: telemetry stats JSON with signature
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
signature:
|
|
type: string
|
|
data:
|
|
type: string
|
|
|
|
/settings/latest_key_renewal_attempt:
|
|
get:
|
|
summary: get latest key renewal attempt
|
|
operationId: getLatestKeyRenewalAttempt
|
|
tags:
|
|
- setting
|
|
responses:
|
|
"200":
|
|
description: status
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
result:
|
|
type: string
|
|
attempted_at:
|
|
type: string
|
|
format: date-time
|
|
required:
|
|
- result
|
|
- attempted_at
|
|
nullable: true
|
|
|
|
/settings/renew_license_key:
|
|
post:
|
|
summary: renew license key
|
|
operationId: renewLicenseKey
|
|
tags:
|
|
- setting
|
|
parameters:
|
|
- name: license_key
|
|
in: query
|
|
required: false
|
|
schema:
|
|
type: string
|
|
responses:
|
|
"200":
|
|
description: status
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/settings/customer_portal:
|
|
post:
|
|
summary: create customer portal session
|
|
operationId: createCustomerPortalSession
|
|
tags:
|
|
- setting
|
|
parameters:
|
|
- name: license_key
|
|
in: query
|
|
required: false
|
|
schema:
|
|
type: string
|
|
responses:
|
|
"200":
|
|
description: url to portal
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/saml/test_metadata:
|
|
post:
|
|
summary: test metadata
|
|
operationId: testMetadata
|
|
tags:
|
|
- setting
|
|
requestBody:
|
|
description: test metadata
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: string
|
|
responses:
|
|
"200":
|
|
description: status
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/settings/list_global:
|
|
get:
|
|
summary: list global settings
|
|
operationId: listGlobalSettings
|
|
tags:
|
|
- setting
|
|
responses:
|
|
"200":
|
|
description: list of settings
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/GlobalSetting"
|
|
|
|
/settings/instance_config:
|
|
get:
|
|
summary: get full instance config (global settings + worker configs)
|
|
operationId: getInstanceConfig
|
|
tags:
|
|
- setting
|
|
responses:
|
|
"200":
|
|
description: full instance configuration
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/InstanceConfig"
|
|
put:
|
|
summary: update instance config (bulk upsert, no deletes). Empty or missing global_settings/worker_configs are skipped.
|
|
operationId: setInstanceConfig
|
|
tags:
|
|
- setting
|
|
requestBody:
|
|
description: full instance configuration to apply
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/InstanceConfig"
|
|
responses:
|
|
"200":
|
|
description: instance config updated
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/min_keep_alive_version:
|
|
get:
|
|
summary: get minimum worker versions required to stay alive
|
|
operationId: getMinKeepAliveVersion
|
|
tags:
|
|
- setting
|
|
responses:
|
|
"200":
|
|
description: minimum keep-alive versions for workers and agents
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- worker
|
|
- agent
|
|
properties:
|
|
worker:
|
|
type: string
|
|
description: minimum version for normal workers
|
|
agent:
|
|
type: string
|
|
description: minimum version for agent workers
|
|
|
|
/.well-known/jwks.json:
|
|
get:
|
|
summary: get JWKS for Vault JWT authentication
|
|
operationId: getJwks
|
|
tags:
|
|
- setting
|
|
responses:
|
|
"200":
|
|
description: JSON Web Key Set
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/JwksResponse"
|
|
|
|
/settings/test_secret_backend:
|
|
post:
|
|
summary: test secret backend connection (HashiCorp Vault)
|
|
operationId: testSecretBackend
|
|
tags:
|
|
- setting
|
|
requestBody:
|
|
description: Vault settings to test
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/VaultSettings"
|
|
responses:
|
|
"200":
|
|
description: connection successful
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/settings/migrate_secrets_to_vault:
|
|
post:
|
|
summary: migrate secrets from database to HashiCorp Vault
|
|
operationId: migrateSecretsToVault
|
|
tags:
|
|
- setting
|
|
requestBody:
|
|
description: Vault settings for migration target
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/VaultSettings"
|
|
responses:
|
|
"200":
|
|
description: migration report
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/SecretMigrationReport"
|
|
|
|
/settings/migrate_secrets_to_database:
|
|
post:
|
|
summary: migrate secrets from HashiCorp Vault to database
|
|
operationId: migrateSecretsToDatabase
|
|
tags:
|
|
- setting
|
|
requestBody:
|
|
description: Vault settings for migration source
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/VaultSettings"
|
|
responses:
|
|
"200":
|
|
description: migration report
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/SecretMigrationReport"
|
|
|
|
/settings/test_azure_kv_backend:
|
|
post:
|
|
summary: test Azure Key Vault connection
|
|
operationId: testAzureKvBackend
|
|
tags:
|
|
- setting
|
|
requestBody:
|
|
description: Azure Key Vault settings to test
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/AzureKeyVaultSettings"
|
|
responses:
|
|
"200":
|
|
description: connection successful
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/settings/migrate_secrets_to_azure_kv:
|
|
post:
|
|
summary: migrate secrets from database to Azure Key Vault
|
|
operationId: migrateSecretsToAzureKv
|
|
tags:
|
|
- setting
|
|
requestBody:
|
|
description: Azure Key Vault settings for migration target
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/AzureKeyVaultSettings"
|
|
responses:
|
|
"200":
|
|
description: migration report
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/SecretMigrationReport"
|
|
|
|
/settings/migrate_secrets_from_azure_kv:
|
|
post:
|
|
summary: migrate secrets from Azure Key Vault to database
|
|
operationId: migrateSecretsFromAzureKv
|
|
tags:
|
|
- setting
|
|
requestBody:
|
|
description: Azure Key Vault settings for migration source
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/AzureKeyVaultSettings"
|
|
responses:
|
|
"200":
|
|
description: migration report
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/SecretMigrationReport"
|
|
|
|
/settings/test_aws_sm_backend:
|
|
post:
|
|
summary: test connection to AWS Secrets Manager
|
|
operationId: testAwsSmBackend
|
|
tags:
|
|
- setting
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/AwsSecretsManagerSettings"
|
|
responses:
|
|
"200":
|
|
description: connection test result
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/settings/migrate_secrets_to_aws_sm:
|
|
post:
|
|
summary: migrate secrets from database to AWS Secrets Manager
|
|
operationId: migrateSecretsToAwsSm
|
|
tags:
|
|
- setting
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/AwsSecretsManagerSettings"
|
|
responses:
|
|
"200":
|
|
description: migration report
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/SecretMigrationReport"
|
|
|
|
/settings/migrate_secrets_from_aws_sm:
|
|
post:
|
|
summary: migrate secrets from AWS Secrets Manager to database
|
|
operationId: migrateSecretsFromAwsSm
|
|
tags:
|
|
- setting
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/AwsSecretsManagerSettings"
|
|
responses:
|
|
"200":
|
|
description: migration report
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/SecretMigrationReport"
|
|
|
|
/users/email:
|
|
get:
|
|
summary: get current user email (if logged in)
|
|
operationId: getCurrentEmail
|
|
tags:
|
|
- user
|
|
responses:
|
|
"200":
|
|
description: user email
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/users/refresh_token:
|
|
get:
|
|
summary: refresh the current token
|
|
operationId: refreshUserToken
|
|
tags:
|
|
- user
|
|
parameters:
|
|
- name: if_expiring_in_less_than_s
|
|
in: query
|
|
required: false
|
|
schema:
|
|
type: integer
|
|
responses:
|
|
"200":
|
|
description: new token
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/users/tutorial_progress:
|
|
get:
|
|
summary: get tutorial progress
|
|
operationId: getTutorialProgress
|
|
tags:
|
|
- user
|
|
responses:
|
|
"200":
|
|
description: tutorial progress
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
progress:
|
|
type: integer
|
|
skipped_all:
|
|
type: boolean
|
|
post:
|
|
summary: update tutorial progress
|
|
operationId: updateTutorialProgress
|
|
tags:
|
|
- user
|
|
requestBody:
|
|
description: progress update
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
progress:
|
|
type: integer
|
|
skipped_all:
|
|
type: boolean
|
|
responses:
|
|
"200":
|
|
description: tutorial progress
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/users/leave_instance:
|
|
post:
|
|
summary: leave instance
|
|
operationId: leaveInstance
|
|
tags:
|
|
- user
|
|
responses:
|
|
"200":
|
|
description: status
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/users/usage:
|
|
get:
|
|
summary: get current usage outside of premium workspaces
|
|
operationId: getUsage
|
|
tags:
|
|
- user
|
|
responses:
|
|
"200":
|
|
description: free usage
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: number
|
|
|
|
/users/all_runnables:
|
|
get:
|
|
summary: get all runnables in every workspace
|
|
operationId: getRunnable
|
|
tags:
|
|
- user
|
|
responses:
|
|
"200":
|
|
description: free all runnables
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
workspace:
|
|
type: string
|
|
endpoint_async:
|
|
type: string
|
|
endpoint_sync:
|
|
type: string
|
|
summary:
|
|
type: string
|
|
description:
|
|
type: string
|
|
kind:
|
|
type: string
|
|
required:
|
|
- workspace
|
|
- endpoint_async
|
|
- endpoint_sync
|
|
- summary
|
|
- kind
|
|
|
|
/users/whoami:
|
|
get:
|
|
summary: get current global whoami (if logged in)
|
|
operationId: globalWhoami
|
|
tags:
|
|
- user
|
|
responses:
|
|
"200":
|
|
description: user email
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/GlobalUserInfo"
|
|
|
|
/users/list_invites:
|
|
get:
|
|
summary: list all workspace invites
|
|
operationId: listWorkspaceInvites
|
|
tags:
|
|
- user
|
|
responses:
|
|
"200":
|
|
description: list all workspace invites
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/WorkspaceInvite"
|
|
|
|
/w/{workspace}/users/whoami:
|
|
get:
|
|
summary: whoami
|
|
operationId: whoami
|
|
tags:
|
|
- user
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
responses:
|
|
"200":
|
|
description: user
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/User"
|
|
|
|
/w/{workspace}/github_app/token:
|
|
post:
|
|
summary: get github app token
|
|
operationId: getGithubAppToken
|
|
tags:
|
|
- workspace
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
requestBody:
|
|
description: jwt job token
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
job_token:
|
|
type: string
|
|
required:
|
|
- job_token
|
|
responses:
|
|
"200":
|
|
description: github app token
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
token:
|
|
type: string
|
|
required:
|
|
- token
|
|
|
|
/w/{workspace}/github_app/install_from_workspace:
|
|
post:
|
|
tags:
|
|
- Git Sync
|
|
summary: Install a GitHub installation from another workspace
|
|
operationId: installFromWorkspace
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
source_workspace_id:
|
|
type: string
|
|
description: The ID of the workspace containing the installation to copy
|
|
installation_id:
|
|
type: number
|
|
description: The ID of the GitHub installation to copy
|
|
required:
|
|
- source_workspace_id
|
|
- installation_id
|
|
responses:
|
|
"200":
|
|
description: Installation successfully copied
|
|
|
|
/w/{workspace}/github_app/installation/{installation_id}:
|
|
delete:
|
|
summary: Delete a GitHub installation from a workspace
|
|
operationId: deleteFromWorkspace
|
|
description: Removes a GitHub installation from the specified workspace. Requires admin privileges.
|
|
tags:
|
|
- Git Sync
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- name: installation_id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: integer
|
|
format: int64
|
|
description: The ID of the GitHub installation to delete
|
|
responses:
|
|
"200":
|
|
description: Installation successfully deleted
|
|
|
|
/w/{workspace}/github_app/export/{installationId}:
|
|
get:
|
|
summary: Export GitHub installation JWT token
|
|
description: Exports the JWT token for a specific GitHub installation in the workspace
|
|
operationId: exportInstallation
|
|
tags:
|
|
- Git Sync
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
- name: installationId
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: integer
|
|
responses:
|
|
"200":
|
|
description: Successfully exported the JWT token
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
jwt_token:
|
|
type: string
|
|
|
|
/w/{workspace}/github_app/import:
|
|
post:
|
|
summary: Import GitHub installation from JWT token
|
|
description: Imports a GitHub installation from a JWT token exported from another instance
|
|
operationId: importInstallation
|
|
tags:
|
|
- Git Sync
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- jwt_token
|
|
properties:
|
|
jwt_token:
|
|
type: string
|
|
responses:
|
|
"200":
|
|
description: Successfully imported the installation
|
|
|
|
/w/{workspace}/github_app/ghes_installation_callback:
|
|
post:
|
|
summary: GHES installation callback
|
|
description: Register a self-managed GitHub App installation from GitHub Enterprise Server
|
|
operationId: ghesInstallationCallback
|
|
tags:
|
|
- Git Sync
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- installation_id
|
|
properties:
|
|
installation_id:
|
|
type: integer
|
|
format: int64
|
|
description: The GitHub App installation ID from GHES
|
|
responses:
|
|
"200":
|
|
description: GHES installation registered successfully
|
|
|
|
/github_app/ghes_config:
|
|
get:
|
|
summary: Get GHES app config
|
|
description: Returns the GitHub Enterprise Server app configuration (without private key) for constructing the installation URL
|
|
operationId: getGhesConfig
|
|
tags:
|
|
- Git Sync
|
|
responses:
|
|
"200":
|
|
description: GHES app configuration
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
base_url:
|
|
type: string
|
|
app_slug:
|
|
type: string
|
|
client_id:
|
|
type: string
|
|
required:
|
|
- base_url
|
|
- app_slug
|
|
- client_id
|
|
|
|
/users/accept_invite:
|
|
post:
|
|
summary: accept invite to workspace
|
|
operationId: acceptInvite
|
|
tags:
|
|
- user
|
|
requestBody:
|
|
description: accept invite
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
workspace_id:
|
|
type: string
|
|
username:
|
|
type: string
|
|
required:
|
|
- workspace_id
|
|
responses:
|
|
"200":
|
|
description: status
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/users/decline_invite:
|
|
post:
|
|
summary: decline invite to workspace
|
|
operationId: declineInvite
|
|
tags:
|
|
- user
|
|
requestBody:
|
|
description: decline invite
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
workspace_id:
|
|
type: string
|
|
required:
|
|
- workspace_id
|
|
responses:
|
|
"200":
|
|
description: status
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/workspaces/invite_user:
|
|
post:
|
|
summary: invite user to workspace
|
|
operationId: inviteUser
|
|
tags:
|
|
- workspace
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
requestBody:
|
|
description: WorkspaceInvite
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
email:
|
|
type: string
|
|
is_admin:
|
|
type: boolean
|
|
operator:
|
|
type: boolean
|
|
parent_workspace_id:
|
|
type: string
|
|
nullable: true
|
|
required:
|
|
- email
|
|
- is_admin
|
|
- operator
|
|
responses:
|
|
"200":
|
|
description: status
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/workspaces/add_user:
|
|
post:
|
|
summary: add user to workspace
|
|
operationId: addUser
|
|
tags:
|
|
- workspace
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
requestBody:
|
|
description: WorkspaceInvite
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
email:
|
|
type: string
|
|
is_admin:
|
|
type: boolean
|
|
username:
|
|
type: string
|
|
operator:
|
|
type: boolean
|
|
required:
|
|
- email
|
|
- is_admin
|
|
- operator
|
|
responses:
|
|
"200":
|
|
description: status
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/workspaces/create_service_account:
|
|
post:
|
|
summary: create a service account
|
|
operationId: createServiceAccount
|
|
tags:
|
|
- workspace
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
username:
|
|
type: string
|
|
required:
|
|
- username
|
|
responses:
|
|
"201":
|
|
description: service account created
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/users/impersonate_service_account:
|
|
post:
|
|
summary: impersonate a service account
|
|
operationId: impersonateServiceAccount
|
|
tags:
|
|
- user
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
username:
|
|
type: string
|
|
required:
|
|
- username
|
|
responses:
|
|
"201":
|
|
description: impersonation token
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/users/exit_impersonation:
|
|
post:
|
|
summary: exit service account impersonation
|
|
operationId: exitImpersonation
|
|
tags:
|
|
- user
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
token:
|
|
type: string
|
|
required:
|
|
- token
|
|
responses:
|
|
"200":
|
|
description: exited impersonation
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/workspaces/delete_invite:
|
|
post:
|
|
summary: delete user invite
|
|
operationId: delete invite
|
|
tags:
|
|
- workspace
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
requestBody:
|
|
description: WorkspaceInvite
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
email:
|
|
type: string
|
|
is_admin:
|
|
type: boolean
|
|
operator:
|
|
type: boolean
|
|
required:
|
|
- email
|
|
- is_admin
|
|
- operator
|
|
responses:
|
|
"200":
|
|
description: status
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/workspaces/archive:
|
|
post:
|
|
summary: archive workspace
|
|
operationId: archiveWorkspace
|
|
tags:
|
|
- workspace
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
responses:
|
|
"200":
|
|
description: status
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/workspaces/unarchive/{workspace}:
|
|
post:
|
|
summary: unarchive workspace
|
|
operationId: unarchiveWorkspace
|
|
tags:
|
|
- workspace
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
responses:
|
|
"200":
|
|
description: status
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/workspaces/delete/{workspace}:
|
|
delete:
|
|
summary: delete workspace (require super admin)
|
|
operationId: deleteWorkspace
|
|
tags:
|
|
- workspace
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- name: only_delete_forks
|
|
in: query
|
|
required: false
|
|
schema:
|
|
type: boolean
|
|
responses:
|
|
"200":
|
|
description: status
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/workspaces/leave:
|
|
post:
|
|
summary: leave workspace
|
|
operationId: leaveWorkspace
|
|
tags:
|
|
- workspace
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
responses:
|
|
"200":
|
|
description: status
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/workspaces/get_workspace_name:
|
|
get:
|
|
summary: get workspace name
|
|
operationId: getWorkspaceName
|
|
tags:
|
|
- workspace
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
responses:
|
|
"200":
|
|
description: status
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/workspaces/change_workspace_name:
|
|
post:
|
|
summary: change workspace name
|
|
operationId: changeWorkspaceName
|
|
tags:
|
|
- workspace
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
new_name:
|
|
type: string
|
|
required:
|
|
- username
|
|
responses:
|
|
"200":
|
|
description: status
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/workspaces/change_workspace_id:
|
|
post:
|
|
summary: change workspace id
|
|
operationId: changeWorkspaceId
|
|
tags:
|
|
- workspace
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
new_id:
|
|
type: string
|
|
new_name:
|
|
type: string
|
|
required:
|
|
- username
|
|
responses:
|
|
"200":
|
|
description: status
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/workspaces/change_workspace_color:
|
|
post:
|
|
summary: change workspace id
|
|
operationId: changeWorkspaceColor
|
|
tags:
|
|
- workspace
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
color:
|
|
type: string
|
|
responses:
|
|
"200":
|
|
description: status
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/users/whois/{username}:
|
|
get:
|
|
summary: whois
|
|
operationId: whois
|
|
tags:
|
|
- user
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- name: username
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
responses:
|
|
"200":
|
|
description: user
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/User"
|
|
|
|
/w/{workspace}/workspaces/operator_settings:
|
|
post:
|
|
operationId: updateOperatorSettings
|
|
summary: Update operator settings for a workspace
|
|
description: Updates the operator settings for a specific workspace. Requires workspace admin privileges.
|
|
tags:
|
|
- workspace
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/OperatorSettings"
|
|
responses:
|
|
"200":
|
|
description: Operator settings updated successfully
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/workspaces/compare/{target_workspace_id}:
|
|
get:
|
|
operationId: compareWorkspaces
|
|
summary: Compare two workspaces
|
|
description: Compares the current workspace with a target workspace to find differences in scripts, flows, apps, resources, and variables. Returns information about items that are ahead, behind, or in conflict.
|
|
tags:
|
|
- workspace
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- name: target_workspace_id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
description: The ID of the workspace to compare with
|
|
responses:
|
|
"200":
|
|
description: Workspace comparison results
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/WorkspaceComparison"
|
|
|
|
/w/{workspace}/workspaces/reset_diff_tally/{fork_workspace_id}:
|
|
post:
|
|
operationId: resetDiffTally
|
|
summary: Resets the ahead and behind deployement counter after a deployement
|
|
description: This endpoint should be called after a fork deployement
|
|
tags:
|
|
- workspace
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- name: fork_workspace_id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
description: The ID of the workspace to compare with
|
|
|
|
responses:
|
|
"200":
|
|
description: status
|
|
content:
|
|
application/json:
|
|
schema: {}
|
|
|
|
/users/exists/{email}:
|
|
get:
|
|
summary: exists email
|
|
operationId: existsEmail
|
|
tags:
|
|
- user
|
|
parameters:
|
|
- name: email
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
responses:
|
|
"200":
|
|
description: user
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: boolean
|
|
|
|
/users/list_as_super_admin:
|
|
get:
|
|
summary: list all users as super admin (require to be super amdin)
|
|
operationId: listUsersAsSuperAdmin
|
|
tags:
|
|
- user
|
|
parameters:
|
|
- $ref: "#/components/parameters/Page"
|
|
- $ref: "#/components/parameters/PerPage"
|
|
- name: active_only
|
|
in: query
|
|
description: filter only active users
|
|
schema:
|
|
type: boolean
|
|
responses:
|
|
"200":
|
|
description: user
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/GlobalUserInfo"
|
|
|
|
/w/{workspace}/workspaces/list_pending_invites:
|
|
get:
|
|
summary: list pending invites for a workspace
|
|
operationId: listPendingInvites
|
|
tags:
|
|
- workspace
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
responses:
|
|
"200":
|
|
description: user
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/WorkspaceInvite"
|
|
|
|
/w/{workspace}/workspaces/get_settings:
|
|
get:
|
|
summary: get settings
|
|
operationId: getSettings
|
|
tags:
|
|
- workspace
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
|
|
responses:
|
|
"200":
|
|
description: status
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
workspace_id:
|
|
type: string
|
|
slack_name:
|
|
type: string
|
|
slack_team_id:
|
|
type: string
|
|
slack_command_script:
|
|
type: string
|
|
slack_oauth_client_id:
|
|
type: string
|
|
slack_oauth_client_secret:
|
|
type: string
|
|
teams_team_id:
|
|
type: string
|
|
teams_command_script:
|
|
type: string
|
|
teams_team_name:
|
|
type: string
|
|
teams_team_guid:
|
|
type: string
|
|
auto_invite:
|
|
$ref: "#/components/schemas/AutoInviteConfig"
|
|
plan:
|
|
type: string
|
|
customer_id:
|
|
type: string
|
|
webhook:
|
|
type: string
|
|
deploy_to:
|
|
type: string
|
|
ai_config:
|
|
$ref: "#/components/schemas/AIConfig"
|
|
error_handler:
|
|
$ref: "#/components/schemas/ErrorHandlerConfig"
|
|
success_handler:
|
|
$ref: "#/components/schemas/SuccessHandlerConfig"
|
|
large_file_storage:
|
|
$ref: "#/components/schemas/LargeFileStorage"
|
|
ducklake:
|
|
$ref: "#/components/schemas/DucklakeSettings"
|
|
datatable:
|
|
$ref: "#/components/schemas/DataTableSettings"
|
|
git_sync:
|
|
$ref: "#/components/schemas/WorkspaceGitSyncSettings"
|
|
deploy_ui:
|
|
$ref: "#/components/schemas/WorkspaceDeployUISettings"
|
|
default_app:
|
|
type: string
|
|
default_scripts:
|
|
$ref: "#/components/schemas/WorkspaceDefaultScripts"
|
|
mute_critical_alerts:
|
|
type: boolean
|
|
color:
|
|
type: string
|
|
operator_settings:
|
|
$ref: "#/components/schemas/OperatorSettings"
|
|
public_app_execution_limit_per_minute:
|
|
type: integer
|
|
description: Rate limit for public app executions per minute per server. NULL or 0 means disabled.
|
|
|
|
/w/{workspace}/workspaces/get_deploy_to:
|
|
get:
|
|
summary: get deploy to
|
|
operationId: getDeployTo
|
|
tags:
|
|
- workspace
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
|
|
responses:
|
|
"200":
|
|
description: status
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
deploy_to:
|
|
type: string
|
|
|
|
/w/{workspace}/workspaces/is_premium:
|
|
get:
|
|
summary: get if workspace is premium
|
|
operationId: getIsPremium
|
|
tags:
|
|
- workspace
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
|
|
responses:
|
|
"200":
|
|
description: status
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: boolean
|
|
|
|
/w/{workspace}/workspaces/premium_info:
|
|
get:
|
|
summary: get premium info
|
|
operationId: getPremiumInfo
|
|
tags:
|
|
- workspace
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- name: skip_subscription_fetch
|
|
in: query
|
|
description: skip fetching subscription status from stripe
|
|
schema:
|
|
type: boolean
|
|
|
|
responses:
|
|
"200":
|
|
description: status
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
premium:
|
|
type: boolean
|
|
usage:
|
|
type: number
|
|
owner:
|
|
type: string
|
|
status:
|
|
type: string
|
|
is_past_due:
|
|
type: boolean
|
|
max_tolerated_executions:
|
|
type: number
|
|
required:
|
|
- premium
|
|
- owner
|
|
- is_past_due
|
|
|
|
/w/{workspace}/workspaces/threshold_alert:
|
|
get:
|
|
summary: get threshold alert info
|
|
operationId: getThresholdAlert
|
|
tags:
|
|
- workspace
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
|
|
responses:
|
|
"200":
|
|
description: status
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
threshold_alert_amount:
|
|
type: number
|
|
last_alert_sent:
|
|
type: string
|
|
format: date-time
|
|
post:
|
|
summary: set threshold alert info
|
|
operationId: setThresholdAlert
|
|
tags:
|
|
- workspace
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
requestBody:
|
|
description: threshold alert info
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
threshold_alert_amount:
|
|
type: number
|
|
|
|
responses:
|
|
"200":
|
|
description: status
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/workspaces/rebuild_dependency_map:
|
|
post:
|
|
summary: rebuild dependency map
|
|
operationId: rebuildDependencyMap
|
|
tags:
|
|
- workspace
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
responses:
|
|
"200":
|
|
description: status
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
/w/{workspace}/workspaces/get_dependents/{imported_path}:
|
|
get:
|
|
summary: get dependents of an imported path
|
|
operationId: getDependents
|
|
tags:
|
|
- workspace
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- name: imported_path
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
description: The imported path to get dependents for
|
|
responses:
|
|
"200":
|
|
description: list of dependents
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/DependencyDependent"
|
|
|
|
/w/{workspace}/workspaces/get_imports/{importer_path}:
|
|
get:
|
|
summary: get script imports for an importer path
|
|
operationId: getImports
|
|
tags:
|
|
- workspace
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- name: importer_path
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
description: The script path to get imports for
|
|
responses:
|
|
"200":
|
|
description: list of imported script paths
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
type: string
|
|
|
|
/w/{workspace}/workspaces/get_dependents_amounts:
|
|
post:
|
|
summary: get dependents amounts for multiple imported paths
|
|
operationId: getDependentsAmounts
|
|
tags:
|
|
- workspace
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
requestBody:
|
|
description: List of imported paths to get dependents counts for
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
type: string
|
|
responses:
|
|
"200":
|
|
description: list of dependents amounts
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/DependentsAmount"
|
|
|
|
/w/{workspace}/workspaces/get_dependency_map:
|
|
get:
|
|
summary: get dependency map
|
|
operationId: getDependencyMap
|
|
tags:
|
|
- workspace
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
responses:
|
|
"200":
|
|
description: dmap
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/DependencyMap"
|
|
|
|
/w/{workspace}/workspaces/edit_slack_command:
|
|
post:
|
|
summary: edit slack command
|
|
operationId: editSlackCommand
|
|
tags:
|
|
- workspace
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
requestBody:
|
|
description: WorkspaceInvite
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
slack_command_script:
|
|
type: string
|
|
|
|
responses:
|
|
"200":
|
|
description: status
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/workspaces/slack_oauth_config:
|
|
get:
|
|
summary: get workspace slack oauth config
|
|
operationId: getWorkspaceSlackOauthConfig
|
|
tags:
|
|
- workspace
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
responses:
|
|
"200":
|
|
description: slack oauth config
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
slack_oauth_client_id:
|
|
type: string
|
|
nullable: true
|
|
slack_oauth_client_secret:
|
|
type: string
|
|
nullable: true
|
|
description: Masked with *** if set
|
|
post:
|
|
summary: set workspace slack oauth config
|
|
operationId: setWorkspaceSlackOauthConfig
|
|
tags:
|
|
- workspace
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
requestBody:
|
|
description: Slack OAuth Configuration
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- slack_oauth_client_id
|
|
- slack_oauth_client_secret
|
|
properties:
|
|
slack_oauth_client_id:
|
|
type: string
|
|
slack_oauth_client_secret:
|
|
type: string
|
|
responses:
|
|
"200":
|
|
description: status
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
delete:
|
|
summary: delete workspace slack oauth config
|
|
operationId: deleteWorkspaceSlackOauthConfig
|
|
tags:
|
|
- workspace
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
responses:
|
|
"200":
|
|
description: status
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/workspaces/edit_teams_command:
|
|
post:
|
|
summary: edit teams command
|
|
operationId: editTeamsCommand
|
|
tags:
|
|
- workspace
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
requestBody:
|
|
description: WorkspaceInvite
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
slack_command_script:
|
|
type: string
|
|
responses:
|
|
"200":
|
|
description: status
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/workspaces/available_teams_ids:
|
|
get:
|
|
summary: list available teams ids
|
|
operationId: listAvailableTeamsIds
|
|
tags:
|
|
- workspace
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- name: search
|
|
in: query
|
|
description: Search teams by name. If omitted, returns first page of all teams.
|
|
required: false
|
|
schema:
|
|
type: string
|
|
- name: next_link
|
|
in: query
|
|
description: Pagination cursor URL from previous response. Pass this to fetch the next page of results.
|
|
required: false
|
|
schema:
|
|
type: string
|
|
responses:
|
|
"200":
|
|
description: status
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
teams:
|
|
type: array
|
|
items:
|
|
type: object
|
|
properties:
|
|
team_name:
|
|
type: string
|
|
team_id:
|
|
type: string
|
|
total_count:
|
|
type: integer
|
|
description: Total number of teams across all pages
|
|
per_page:
|
|
type: integer
|
|
description: Number of teams per page (configurable via TEAMS_PER_PAGE env var)
|
|
next_link:
|
|
type: string
|
|
nullable: true
|
|
description: URL to fetch next page of results. Null if no more pages.
|
|
|
|
/w/{workspace}/workspaces/available_teams_channels:
|
|
get:
|
|
summary: list available channels for a specific team
|
|
operationId: listAvailableTeamsChannels
|
|
tags:
|
|
- workspace
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- name: team_id
|
|
in: query
|
|
description: Microsoft Teams team ID
|
|
required: true
|
|
schema:
|
|
type: string
|
|
responses:
|
|
"200":
|
|
description: List of channels for the specified team
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
channels:
|
|
type: array
|
|
items:
|
|
type: object
|
|
properties:
|
|
channel_name:
|
|
type: string
|
|
channel_id:
|
|
type: string
|
|
total_count:
|
|
type: integer
|
|
|
|
/w/{workspace}/workspaces/connect_teams:
|
|
post:
|
|
summary: connect teams
|
|
operationId: connectTeams
|
|
tags:
|
|
- workspace
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
requestBody:
|
|
description: connect teams
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
team_id:
|
|
type: string
|
|
team_name:
|
|
type: string
|
|
responses:
|
|
"200":
|
|
description: status
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/workspaces/run_slack_message_test_job:
|
|
post:
|
|
summary: run a job that sends a message to Slack
|
|
operationId: runSlackMessageTestJob
|
|
tags:
|
|
- workspace
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
requestBody:
|
|
description: path to hub script to run and its corresponding args
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
hub_script_path:
|
|
type: string
|
|
channel:
|
|
type: string
|
|
test_msg:
|
|
type: string
|
|
|
|
responses:
|
|
"200":
|
|
description: status
|
|
content:
|
|
text/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
job_uuid:
|
|
type: string
|
|
|
|
/w/{workspace}/workspaces/run_teams_message_test_job:
|
|
post:
|
|
summary: run a job that sends a message to Teams
|
|
operationId: runTeamsMessageTestJob
|
|
tags:
|
|
- workspace
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
requestBody:
|
|
description: path to hub script to run and its corresponding args
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
hub_script_path:
|
|
type: string
|
|
channel:
|
|
type: string
|
|
test_msg:
|
|
type: string
|
|
|
|
responses:
|
|
"200":
|
|
description: status
|
|
content:
|
|
text/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
job_uuid:
|
|
type: string
|
|
|
|
/w/{workspace}/workspaces/edit_deploy_to:
|
|
post:
|
|
summary: edit deploy to
|
|
operationId: editDeployTo
|
|
tags:
|
|
- workspace
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
deploy_to:
|
|
type: string
|
|
|
|
responses:
|
|
"200":
|
|
description: status
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/workspaces/edit_auto_invite:
|
|
post:
|
|
summary: edit auto invite
|
|
operationId: editAutoInvite
|
|
tags:
|
|
- workspace
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
requestBody:
|
|
description: WorkspaceInvite
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
operator:
|
|
type: boolean
|
|
invite_all:
|
|
type: boolean
|
|
auto_add:
|
|
type: boolean
|
|
|
|
responses:
|
|
"200":
|
|
description: status
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/workspaces/edit_instance_groups:
|
|
post:
|
|
summary: edit instance groups
|
|
operationId: editInstanceGroups
|
|
tags:
|
|
- workspace
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
requestBody:
|
|
description: Instance Groups Configuration
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
groups:
|
|
type: array
|
|
items:
|
|
type: string
|
|
roles:
|
|
type: object
|
|
additionalProperties:
|
|
type: string
|
|
|
|
responses:
|
|
"200":
|
|
description: status
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/workspaces/edit_webhook:
|
|
post:
|
|
summary: edit webhook
|
|
operationId: editWebhook
|
|
tags:
|
|
- workspace
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
requestBody:
|
|
description: WorkspaceWebhook
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
webhook:
|
|
type: string
|
|
|
|
responses:
|
|
"200":
|
|
description: status
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/workspaces/edit_copilot_config:
|
|
post:
|
|
summary: edit copilot config
|
|
operationId: editCopilotConfig
|
|
tags:
|
|
- workspace
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
requestBody:
|
|
description: WorkspaceCopilotConfig
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/AIConfig"
|
|
responses:
|
|
"200":
|
|
description: status
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
effective_ai_config:
|
|
$ref: "#/components/schemas/AIConfig"
|
|
has_instance_ai_config:
|
|
type: boolean
|
|
uses_instance_ai_config:
|
|
type: boolean
|
|
instance_ai_summary:
|
|
$ref: "#/components/schemas/InstanceAISummary"
|
|
required:
|
|
- effective_ai_config
|
|
- has_instance_ai_config
|
|
- uses_instance_ai_config
|
|
|
|
/w/{workspace}/workspaces/get_copilot_settings_state:
|
|
get:
|
|
summary: get copilot settings state
|
|
operationId: getCopilotSettingsState
|
|
tags:
|
|
- workspace
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
|
|
responses:
|
|
"200":
|
|
description: status
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
has_instance_ai_config:
|
|
type: boolean
|
|
uses_instance_ai_config:
|
|
type: boolean
|
|
instance_ai_summary:
|
|
$ref: "#/components/schemas/InstanceAISummary"
|
|
required:
|
|
- has_instance_ai_config
|
|
- uses_instance_ai_config
|
|
|
|
/w/{workspace}/workspaces/get_copilot_info:
|
|
get:
|
|
summary: get copilot info
|
|
operationId: getCopilotInfo
|
|
tags:
|
|
- workspace
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
|
|
responses:
|
|
"200":
|
|
description: status
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/AIConfig"
|
|
|
|
/w/{workspace}/workspaces/edit_error_handler:
|
|
post:
|
|
summary: edit error handler
|
|
operationId: editErrorHandler
|
|
tags:
|
|
- workspace
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
requestBody:
|
|
description: WorkspaceErrorHandler
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/EditErrorHandler"
|
|
responses:
|
|
"200":
|
|
description: status
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/workspaces/edit_success_handler:
|
|
post:
|
|
summary: edit success handler
|
|
operationId: editSuccessHandler
|
|
tags:
|
|
- workspace
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
requestBody:
|
|
description: WorkspaceSuccessHandler
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/EditSuccessHandler"
|
|
responses:
|
|
"200":
|
|
description: status
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/workspaces/edit_large_file_storage_config:
|
|
post:
|
|
summary: edit large file storage settings
|
|
operationId: editLargeFileStorageConfig
|
|
tags:
|
|
- workspace
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
requestBody:
|
|
description: LargeFileStorage info
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
large_file_storage:
|
|
$ref: "#/components/schemas/LargeFileStorage"
|
|
responses:
|
|
"200":
|
|
description: status
|
|
content:
|
|
application/json:
|
|
schema: {}
|
|
|
|
/w/{workspace}/workspaces/list_ducklakes:
|
|
get:
|
|
summary: list ducklakes
|
|
operationId: listDucklakes
|
|
tags:
|
|
- workspace
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
responses:
|
|
"200":
|
|
description: status
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
type: string
|
|
|
|
/w/{workspace}/workspaces/list_datatables:
|
|
get:
|
|
summary: list Datatables
|
|
operationId: listDataTables
|
|
tags:
|
|
- workspace
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
responses:
|
|
"200":
|
|
description: status
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
type: object
|
|
required: [name, resource_type, resource_path]
|
|
properties:
|
|
name:
|
|
type: string
|
|
resource_type:
|
|
type: string
|
|
enum: [postgres, instance]
|
|
resource_path:
|
|
type: string
|
|
|
|
/w/{workspace}/workspaces/list_datatable_schemas:
|
|
get:
|
|
summary: list schemas of all connected Datatables
|
|
operationId: listDataTableSchemas
|
|
tags:
|
|
- workspace
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
responses:
|
|
"200":
|
|
description: schemas of all datatables
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/DataTableSchema"
|
|
|
|
/w/{workspace}/workspaces/edit_ducklake_config:
|
|
post:
|
|
summary: edit ducklake settings
|
|
operationId: editDucklakeConfig
|
|
tags:
|
|
- workspace
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
requestBody:
|
|
description: Ducklake settings
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
required: [settings]
|
|
properties:
|
|
settings:
|
|
$ref: "#/components/schemas/DucklakeSettings"
|
|
|
|
responses:
|
|
"200":
|
|
description: status
|
|
content:
|
|
application/json:
|
|
schema: {}
|
|
|
|
/w/{workspace}/workspaces/edit_datatable_config:
|
|
post:
|
|
summary: edit datatable settings
|
|
operationId: editDataTableConfig
|
|
tags:
|
|
- workspace
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
requestBody:
|
|
description: DataTable settings
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
required: [settings]
|
|
properties:
|
|
settings:
|
|
$ref: "#/components/schemas/DataTableSettings"
|
|
responses:
|
|
"200":
|
|
description: status
|
|
content:
|
|
application/json:
|
|
schema: {}
|
|
|
|
/w/{workspace}/workspaces/create_pg_database:
|
|
post:
|
|
summary: create a new PostgreSQL database for a datatable
|
|
operationId: createPgDatabase
|
|
tags:
|
|
- workspace
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
requestBody:
|
|
description: Create pg database request
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
required: [source, target_dbname]
|
|
properties:
|
|
source:
|
|
type: string
|
|
description: "Datatable source to determine connection info: 'datatable://name' or '$res:path'"
|
|
target_dbname:
|
|
type: string
|
|
description: "Name for the new database"
|
|
responses:
|
|
"200":
|
|
description: status
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/workspaces/drop_forked_datatable_databases:
|
|
post:
|
|
summary: drop forked datatable databases
|
|
operationId: dropForkedDatatableDatabases
|
|
tags:
|
|
- workspace
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
required: [datatable_names]
|
|
properties:
|
|
datatable_names:
|
|
type: array
|
|
items:
|
|
type: string
|
|
responses:
|
|
"200":
|
|
description: list of errors (empty if all succeeded)
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
type: string
|
|
|
|
/w/{workspace}/workspaces/import_pg_database:
|
|
post:
|
|
summary: import a PostgreSQL database from source to target via pg_dump
|
|
operationId: importPgDatabase
|
|
tags:
|
|
- workspace
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
requestBody:
|
|
description: Import pg database request
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
required: [source, target, fork_behavior]
|
|
properties:
|
|
source:
|
|
type: string
|
|
description: "Source database: 'datatable://name' or '$res:path'"
|
|
target:
|
|
type: string
|
|
description: "Target database: 'datatable://name' or '$res:path'"
|
|
target_dbname_override:
|
|
type: string
|
|
description: "Override the target database name"
|
|
fork_behavior:
|
|
type: string
|
|
enum:
|
|
- schema_only
|
|
- schema_and_data
|
|
- keep_original
|
|
responses:
|
|
"200":
|
|
description: status
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/workspaces/export_pg_schema:
|
|
post:
|
|
summary: export the schema of a PostgreSQL database
|
|
operationId: exportPgSchema
|
|
tags:
|
|
- workspace
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
requestBody:
|
|
description: Export pg schema request
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
required: [source]
|
|
properties:
|
|
source:
|
|
type: string
|
|
description: "Source database: 'datatable://name' or '$res:path'"
|
|
responses:
|
|
"200":
|
|
description: schema dump
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/workspaces/get_datatable_full_schema:
|
|
post:
|
|
summary: get the full schema of a datatable database as TableEditorValues
|
|
operationId: getDatatableFullSchema
|
|
tags:
|
|
- workspace
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
required: [source]
|
|
properties:
|
|
source:
|
|
type: string
|
|
description: "Source datatable, e.g. 'datatable://main'"
|
|
responses:
|
|
"200":
|
|
description: "Schema as { schema_name: { table_name: TableEditorValues } }"
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
additionalProperties:
|
|
type: object
|
|
additionalProperties:
|
|
type: object
|
|
required: [name, columns, foreign_keys]
|
|
properties:
|
|
name:
|
|
type: string
|
|
columns:
|
|
type: array
|
|
items:
|
|
type: object
|
|
required: [name, datatype]
|
|
properties:
|
|
name:
|
|
type: string
|
|
datatype:
|
|
type: string
|
|
primary_key:
|
|
type: boolean
|
|
default_value:
|
|
type: string
|
|
nullable:
|
|
type: boolean
|
|
foreign_keys:
|
|
type: array
|
|
items:
|
|
type: object
|
|
required: [columns, on_delete, on_update]
|
|
properties:
|
|
target_table:
|
|
type: string
|
|
columns:
|
|
type: array
|
|
items:
|
|
type: object
|
|
properties:
|
|
source_column:
|
|
type: string
|
|
target_column:
|
|
type: string
|
|
on_delete:
|
|
type: string
|
|
on_update:
|
|
type: string
|
|
fk_constraint_name:
|
|
type: string
|
|
pk_constraint_name:
|
|
type: string
|
|
|
|
/w/{workspace}/workspaces/git_sync_enabled:
|
|
get:
|
|
summary: Check if git sync is available for this workspace
|
|
operationId: getGitSyncEnabled
|
|
tags:
|
|
- workspace
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
responses:
|
|
"200":
|
|
description: Git sync availability status
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
enabled:
|
|
type: boolean
|
|
reason:
|
|
type: string
|
|
nullable: true
|
|
max_repos:
|
|
type: integer
|
|
nullable: true
|
|
user_count:
|
|
type: integer
|
|
nullable: true
|
|
max_users:
|
|
type: integer
|
|
nullable: true
|
|
|
|
/w/{workspace}/workspaces/edit_git_sync_config:
|
|
post:
|
|
summary: edit workspace git sync settings
|
|
operationId: editWorkspaceGitSyncConfig
|
|
tags:
|
|
- workspace
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
requestBody:
|
|
description: Workspace Git sync settings
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
git_sync_settings:
|
|
$ref: "#/components/schemas/WorkspaceGitSyncSettings"
|
|
|
|
responses:
|
|
"200":
|
|
description: status
|
|
content:
|
|
application/json:
|
|
schema: {}
|
|
|
|
/w/{workspace}/workspaces/edit_git_sync_repository:
|
|
post:
|
|
summary: add or update individual git sync repository
|
|
operationId: editGitSyncRepository
|
|
tags:
|
|
- workspace
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
requestBody:
|
|
description: Git sync repository settings to add or update
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
git_repo_resource_path:
|
|
type: string
|
|
description: The resource path of the git repository to update
|
|
repository:
|
|
$ref: "#/components/schemas/GitRepositorySettings"
|
|
required:
|
|
- git_repo_resource_path
|
|
- repository
|
|
responses:
|
|
"200":
|
|
description: status
|
|
content:
|
|
application/json:
|
|
schema: {}
|
|
|
|
/w/{workspace}/workspaces/delete_git_sync_repository:
|
|
delete:
|
|
summary: delete individual git sync repository
|
|
operationId: deleteGitSyncRepository
|
|
tags:
|
|
- workspace
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
requestBody:
|
|
description: Git sync repository to delete
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
git_repo_resource_path:
|
|
type: string
|
|
description: The resource path of the git repository to delete
|
|
required:
|
|
- git_repo_resource_path
|
|
responses:
|
|
"200":
|
|
description: status
|
|
content:
|
|
application/json:
|
|
schema: {}
|
|
|
|
/w/{workspace}/workspaces/edit_deploy_ui_config:
|
|
post:
|
|
summary: edit workspace deploy ui settings
|
|
operationId: editWorkspaceDeployUISettings
|
|
tags:
|
|
- workspace
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
requestBody:
|
|
description: Workspace deploy UI settings
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
deploy_ui_settings:
|
|
$ref: "#/components/schemas/WorkspaceDeployUISettings"
|
|
|
|
responses:
|
|
"200":
|
|
description: status
|
|
content:
|
|
application/json:
|
|
schema: {}
|
|
|
|
/w/{workspace}/workspaces/edit_default_app:
|
|
post:
|
|
summary: edit default app for workspace
|
|
operationId: editWorkspaceDefaultApp
|
|
tags:
|
|
- workspace
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
requestBody:
|
|
description: Workspace default app
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
default_app_path:
|
|
type: string
|
|
|
|
responses:
|
|
"200":
|
|
description: status
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/workspaces/default_scripts:
|
|
post:
|
|
summary: edit default scripts for workspace
|
|
operationId: editDefaultScripts
|
|
tags:
|
|
- workspace
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
requestBody:
|
|
description: Workspace default app
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/WorkspaceDefaultScripts"
|
|
|
|
responses:
|
|
"200":
|
|
description: status
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
get:
|
|
summary: get default scripts for workspace
|
|
operationId: get default scripts
|
|
tags:
|
|
- workspace
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
responses:
|
|
"200":
|
|
description: status
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/WorkspaceDefaultScripts"
|
|
|
|
/w/{workspace}/workspaces/set_environment_variable:
|
|
post:
|
|
summary: set environment variable
|
|
operationId: setEnvironmentVariable
|
|
tags:
|
|
- workspace
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
requestBody:
|
|
description: Workspace default app
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
name:
|
|
type: string
|
|
value:
|
|
type: string
|
|
required: [name]
|
|
responses:
|
|
"200":
|
|
description: status
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/workspaces/encryption_key:
|
|
get:
|
|
summary: retrieves the encryption key for this workspace
|
|
operationId: getWorkspaceEncryptionKey
|
|
tags:
|
|
- workspace
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
responses:
|
|
"200":
|
|
description: status
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
key:
|
|
type: string
|
|
required:
|
|
- key
|
|
post:
|
|
summary: update the encryption key for this workspace
|
|
operationId: setWorkspaceEncryptionKey
|
|
tags:
|
|
- workspace
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
requestBody:
|
|
description: New encryption key
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
new_key:
|
|
type: string
|
|
skip_reencrypt:
|
|
type: boolean
|
|
required:
|
|
- new_key
|
|
|
|
responses:
|
|
"200":
|
|
description: status
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/workspaces/default_app:
|
|
get:
|
|
summary: get default app for workspace
|
|
operationId: getWorkspaceDefaultApp
|
|
tags:
|
|
- workspace
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
responses:
|
|
"200":
|
|
description: status
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
default_app_path:
|
|
type: string
|
|
default_app_raw:
|
|
type: boolean
|
|
|
|
/w/{workspace}/workspaces/usage:
|
|
get:
|
|
summary: get usage
|
|
operationId: getWorkspaceUsage
|
|
tags:
|
|
- workspace
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
responses:
|
|
"200":
|
|
description: usage
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: number
|
|
|
|
/w/{workspace}/workspaces/used_triggers:
|
|
get:
|
|
summary: get used triggers
|
|
operationId: getUsedTriggers
|
|
tags:
|
|
- workspace
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
responses:
|
|
"200":
|
|
description: status
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
http_routes_used:
|
|
type: boolean
|
|
websocket_used:
|
|
type: boolean
|
|
kafka_used:
|
|
type: boolean
|
|
nats_used:
|
|
type: boolean
|
|
postgres_used:
|
|
type: boolean
|
|
mqtt_used:
|
|
type: boolean
|
|
gcp_used:
|
|
type: boolean
|
|
sqs_used:
|
|
type: boolean
|
|
email_used:
|
|
type: boolean
|
|
nextcloud_used:
|
|
type: boolean
|
|
google_used:
|
|
type: boolean
|
|
required:
|
|
- http_routes_used
|
|
- websocket_used
|
|
- kafka_used
|
|
- nats_used
|
|
- postgres_used
|
|
- mqtt_used
|
|
- gcp_used
|
|
- sqs_used
|
|
- email_used
|
|
- nextcloud_used
|
|
- google_used
|
|
/w/{workspace}/users/list:
|
|
get:
|
|
summary: list users
|
|
operationId: listUsers
|
|
tags:
|
|
- user
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
responses:
|
|
"200":
|
|
description: user
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/User"
|
|
|
|
/w/{workspace}/users/list_usage:
|
|
get:
|
|
summary: list users usage
|
|
operationId: listUsersUsage
|
|
tags:
|
|
- user
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
responses:
|
|
"200":
|
|
description: user
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/UserUsage"
|
|
|
|
/w/{workspace}/users/list_usernames:
|
|
get:
|
|
summary: list usernames
|
|
operationId: listUsernames
|
|
tags:
|
|
- user
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
responses:
|
|
"200":
|
|
description: user
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
type: string
|
|
|
|
/w/{workspace}/users/username_to_email/{username}:
|
|
get:
|
|
summary: get email from username
|
|
operationId: usernameToEmail
|
|
tags:
|
|
- user
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- name: username
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
responses:
|
|
"200":
|
|
description: email
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/tokens/list/scopes:
|
|
get:
|
|
summary: list of available scopes
|
|
operationId: ListAvailableScopes
|
|
tags:
|
|
- token
|
|
responses:
|
|
"200":
|
|
description: list of available scopes
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/ScopeDomain"
|
|
|
|
/users/tokens/create:
|
|
post:
|
|
summary: create token
|
|
operationId: createToken
|
|
tags:
|
|
- user
|
|
requestBody:
|
|
description: new token
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/NewToken"
|
|
responses:
|
|
"201":
|
|
description: token created
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/users/tokens/impersonate:
|
|
post:
|
|
summary: create token to impersonate a user (require superadmin)
|
|
operationId: createTokenImpersonate
|
|
tags:
|
|
- user
|
|
requestBody:
|
|
description: new token
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/NewTokenImpersonate"
|
|
responses:
|
|
"201":
|
|
description: token created
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/users/tokens/delete/{token_prefix}:
|
|
delete:
|
|
summary: delete token
|
|
operationId: deleteToken
|
|
tags:
|
|
- user
|
|
parameters:
|
|
- name: token_prefix
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
responses:
|
|
"200":
|
|
description: delete token
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/users/tokens/list:
|
|
get:
|
|
summary: list token
|
|
operationId: listTokens
|
|
tags:
|
|
- user
|
|
parameters:
|
|
- name: exclude_ephemeral
|
|
in: query
|
|
schema:
|
|
type: boolean
|
|
- $ref: "#/components/parameters/Page"
|
|
- $ref: "#/components/parameters/PerPage"
|
|
responses:
|
|
"200":
|
|
description: truncated token
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/TruncatedToken"
|
|
|
|
/w/{workspace}/oidc/token/{audience}:
|
|
post:
|
|
summary: get OIDC token (ee only)
|
|
operationId: getOidcToken
|
|
tags:
|
|
- oidc
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- name: audience
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
- name: expires_in
|
|
in: query
|
|
schema:
|
|
type: number
|
|
|
|
responses:
|
|
"200":
|
|
description: new oidc token
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/variables/create:
|
|
post:
|
|
summary: create variable
|
|
operationId: createVariable
|
|
x-mcp-tool: true
|
|
tags:
|
|
- variable
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- name: already_encrypted
|
|
description: whether the variable is already encrypted (default false)
|
|
in: query
|
|
schema:
|
|
type: boolean
|
|
requestBody:
|
|
description: new variable
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/CreateVariable"
|
|
responses:
|
|
"201":
|
|
description: variable created
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/variables/encrypt:
|
|
post:
|
|
summary: encrypt value
|
|
operationId: encryptValue
|
|
tags:
|
|
- variable
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
requestBody:
|
|
description: new variable
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: string
|
|
responses:
|
|
"200":
|
|
description: encrypted value
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/variables/delete/{path}:
|
|
delete:
|
|
summary: delete variable
|
|
operationId: deleteVariable
|
|
x-mcp-tool: true
|
|
tags:
|
|
- variable
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Path"
|
|
responses:
|
|
"200":
|
|
description: variable deleted
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/variables/delete_bulk:
|
|
delete:
|
|
summary: delete variables in bulk
|
|
operationId: deleteVariablesBulk
|
|
tags:
|
|
- variable
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
requestBody:
|
|
description: paths to delete
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
paths:
|
|
type: array
|
|
items:
|
|
type: string
|
|
required:
|
|
- paths
|
|
responses:
|
|
"200":
|
|
description: deleted paths
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
type: string
|
|
|
|
/w/{workspace}/variables/update/{path}:
|
|
post:
|
|
summary: update variable
|
|
operationId: updateVariable
|
|
x-mcp-tool: true
|
|
tags:
|
|
- variable
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Path"
|
|
- name: already_encrypted
|
|
description: whether the variable is already encrypted (default false)
|
|
in: query
|
|
schema:
|
|
type: boolean
|
|
requestBody:
|
|
description: updated variable
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/EditVariable"
|
|
responses:
|
|
"200":
|
|
description: variable updated
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/variables/get/{path}:
|
|
get:
|
|
summary: get variable
|
|
operationId: getVariable
|
|
x-mcp-tool: true
|
|
tags:
|
|
- variable
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Path"
|
|
- name: decrypt_secret
|
|
description: |
|
|
ask to decrypt secret if this variable is secret
|
|
(if not secret no effect, default: true)
|
|
in: query
|
|
schema:
|
|
type: boolean
|
|
- name: include_encrypted
|
|
description: |
|
|
ask to include the encrypted value if secret and decrypt secret is not true (default: false)
|
|
in: query
|
|
schema:
|
|
type: boolean
|
|
responses:
|
|
"200":
|
|
description: variable
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ListableVariable"
|
|
|
|
/w/{workspace}/variables/get_value/{path}:
|
|
get:
|
|
summary: get variable value
|
|
operationId: getVariableValue
|
|
tags:
|
|
- variable
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Path"
|
|
- name: allow_cache
|
|
description: |
|
|
allow getting a cached value for improved performance
|
|
in: query
|
|
schema:
|
|
type: boolean
|
|
responses:
|
|
"200":
|
|
description: variable
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/variables/exists/{path}:
|
|
get:
|
|
summary: does variable exists at path
|
|
operationId: existsVariable
|
|
tags:
|
|
- variable
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Path"
|
|
responses:
|
|
"200":
|
|
description: variable
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: boolean
|
|
|
|
/w/{workspace}/variables/list:
|
|
get:
|
|
summary: list variables
|
|
operationId: listVariable
|
|
x-mcp-tool: true
|
|
tags:
|
|
- variable
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- name: path_start
|
|
description: filter variables by path prefix
|
|
in: query
|
|
schema:
|
|
type: string
|
|
- name: path
|
|
description: exact path match filter
|
|
in: query
|
|
schema:
|
|
type: string
|
|
- name: description
|
|
description: pattern match filter for description field (case-insensitive)
|
|
in: query
|
|
schema:
|
|
type: string
|
|
- name: value
|
|
description: pattern match filter for non-secret variable values (case-insensitive)
|
|
in: query
|
|
schema:
|
|
type: string
|
|
- name: broad_filter
|
|
description: broad search across multiple fields (case-insensitive substring match)
|
|
in: query
|
|
schema:
|
|
type: string
|
|
- $ref: "#/components/parameters/Page"
|
|
- $ref: "#/components/parameters/PerPage"
|
|
- name: label
|
|
description: Filter by label
|
|
in: query
|
|
required: false
|
|
schema:
|
|
type: string
|
|
responses:
|
|
"200":
|
|
description: variable list
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/ListableVariable"
|
|
|
|
/w/{workspace}/variables/list_contextual:
|
|
get:
|
|
summary: list contextual variables
|
|
operationId: listContextualVariables
|
|
tags:
|
|
- variable
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
responses:
|
|
"200":
|
|
description: contextual variable list
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/ContextualVariable"
|
|
|
|
/w/{workspace}/workspaces/get_secondary_storage_names:
|
|
get:
|
|
summary: get secondary storage names
|
|
operationId: getSecondaryStorageNames
|
|
tags:
|
|
- setting
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- name: include_default
|
|
in: query
|
|
description: If true, include "_default_" in the list if primary workspace storage is set
|
|
required: false
|
|
schema:
|
|
type: boolean
|
|
default: false
|
|
responses:
|
|
"200":
|
|
description: status
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
type: string
|
|
|
|
/w/{workspace}/workspaces/critical_alerts:
|
|
get:
|
|
summary: Get all critical alerts for this workspace
|
|
operationId: workspaceGetCriticalAlerts
|
|
tags:
|
|
- setting
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- in: query
|
|
name: page
|
|
schema:
|
|
type: integer
|
|
default: 1
|
|
description: The page number to retrieve (minimum value is 1)
|
|
- in: query
|
|
name: page_size
|
|
schema:
|
|
type: integer
|
|
default: 10
|
|
maximum: 100
|
|
description: Number of alerts per page (maximum is 100)
|
|
- in: query
|
|
name: acknowledged
|
|
schema:
|
|
type: boolean
|
|
nullable: true
|
|
description: Filter by acknowledgment status; true for acknowledged, false for unacknowledged, and omit for all alerts
|
|
responses:
|
|
"200":
|
|
description: Successfully retrieved all critical alerts
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
alerts:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/CriticalAlert"
|
|
total_rows:
|
|
type: integer
|
|
description: Total number of rows matching the query.
|
|
example: 100
|
|
total_pages:
|
|
type: integer
|
|
description: Total number of pages based on the page size.
|
|
example: 10
|
|
|
|
/w/{workspace}/workspaces/critical_alerts/{id}/acknowledge:
|
|
post:
|
|
summary: Acknowledge a critical alert for this workspace
|
|
operationId: workspaceAcknowledgeCriticalAlert
|
|
tags:
|
|
- setting
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- in: path
|
|
name: id
|
|
required: true
|
|
schema:
|
|
type: integer
|
|
description: The ID of the critical alert to acknowledge
|
|
responses:
|
|
"200":
|
|
description: Successfully acknowledged the critical alert
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: string
|
|
example: "Critical alert acknowledged"
|
|
|
|
/w/{workspace}/workspaces/critical_alerts/acknowledge_all:
|
|
post:
|
|
summary: Acknowledge all unacknowledged critical alerts for this workspace
|
|
operationId: workspaceAcknowledgeAllCriticalAlerts
|
|
tags:
|
|
- setting
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
responses:
|
|
"200":
|
|
description: Successfully acknowledged all unacknowledged critical alerts.
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: string
|
|
example: "All unacknowledged critical alerts acknowledged"
|
|
|
|
/w/{workspace}/workspaces/critical_alerts/mute:
|
|
post:
|
|
summary: Mute critical alert UI for this workspace
|
|
operationId: workspaceMuteCriticalAlertsUI
|
|
tags:
|
|
- setting
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
requestBody:
|
|
description: Boolean flag to mute critical alerts.
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
mute_critical_alerts:
|
|
type: boolean
|
|
description: Whether critical alerts should be muted.
|
|
example: true
|
|
responses:
|
|
"200":
|
|
description: Successfully updated mute critical alert settings.
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: string
|
|
example: "Updated mute critical alert UI settings for workspace: workspace_id"
|
|
|
|
/w/{workspace}/workspaces/protection_rules:
|
|
get:
|
|
summary: list all protection rules for a workspace
|
|
operationId: listProtectionRules
|
|
tags:
|
|
- workspace
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
responses:
|
|
"200":
|
|
description: list of protection rules
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/ProtectionRuleset"
|
|
post:
|
|
summary: create a new protection rule
|
|
operationId: createProtectionRule
|
|
tags:
|
|
- workspace
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
requestBody:
|
|
description: New protection rule configuration
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- name
|
|
- rules
|
|
- bypass_groups
|
|
- bypass_users
|
|
properties:
|
|
name:
|
|
type: string
|
|
description: Unique name for the protection rule
|
|
example: "Production Protection"
|
|
rules:
|
|
$ref: "#/components/schemas/ProtectionRules"
|
|
bypass_groups:
|
|
$ref: "#/components/schemas/RuleBypasserGroups"
|
|
bypass_users:
|
|
$ref: "#/components/schemas/RuleBypasserUsers"
|
|
responses:
|
|
"200":
|
|
description: protection rule created successfully
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
"400":
|
|
description: rule with this name already exists
|
|
|
|
/w/{workspace}/workspaces/protection_rules/{rule_name}:
|
|
post:
|
|
summary: update an existing protection rule
|
|
operationId: updateProtectionRule
|
|
tags:
|
|
- workspace
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- name: rule_name
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
description: Name of the protection rule to update
|
|
requestBody:
|
|
description: Updated protection rule configuration
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- rules
|
|
- bypass_groups
|
|
- bypass_users
|
|
properties:
|
|
rules:
|
|
$ref: "#/components/schemas/ProtectionRules"
|
|
bypass_groups:
|
|
$ref: "#/components/schemas/RuleBypasserGroups"
|
|
bypass_users:
|
|
$ref: "#/components/schemas/RuleBypasserUsers"
|
|
responses:
|
|
"200":
|
|
description: protection rule updated successfully
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
"404":
|
|
description: protection rule not found
|
|
delete:
|
|
summary: delete a protection rule
|
|
operationId: deleteProtectionRule
|
|
tags:
|
|
- workspace
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- name: rule_name
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
description: Name of the protection rule to delete
|
|
responses:
|
|
"200":
|
|
description: protection rule deleted successfully
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
"404":
|
|
description: protection rule not found
|
|
/w/{workspace}/workspaces/log_chat:
|
|
post:
|
|
summary: log AI chat message
|
|
operationId: logAiChat
|
|
tags:
|
|
- workspace
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- session_id
|
|
- provider
|
|
- model
|
|
- mode
|
|
properties:
|
|
session_id:
|
|
type: string
|
|
provider:
|
|
type: string
|
|
model:
|
|
type: string
|
|
mode:
|
|
type: string
|
|
responses:
|
|
"204":
|
|
description: logged
|
|
|
|
/w/{workspace}/workspaces/cloud_quotas:
|
|
get:
|
|
summary: get cloud quota usage and limits for workspace
|
|
operationId: getCloudQuotas
|
|
tags:
|
|
- workspace
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
responses:
|
|
"200":
|
|
description: cloud quota usage and limits
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
scripts:
|
|
$ref: "#/components/schemas/QuotaInfo"
|
|
flows:
|
|
$ref: "#/components/schemas/QuotaInfo"
|
|
apps:
|
|
$ref: "#/components/schemas/QuotaInfo"
|
|
variables:
|
|
$ref: "#/components/schemas/QuotaInfo"
|
|
resources:
|
|
$ref: "#/components/schemas/QuotaInfo"
|
|
required:
|
|
- scripts
|
|
- flows
|
|
- apps
|
|
- variables
|
|
- resources
|
|
|
|
/w/{workspace}/workspaces/prune_versions:
|
|
post:
|
|
summary: prune old versions of scripts, flows, or apps
|
|
operationId: pruneVersions
|
|
tags:
|
|
- workspace
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
resource_type:
|
|
type: string
|
|
enum:
|
|
- scripts
|
|
- flows
|
|
- apps
|
|
required:
|
|
- resource_type
|
|
responses:
|
|
"200":
|
|
description: number of pruned versions
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
pruned:
|
|
type: integer
|
|
required:
|
|
- pruned
|
|
|
|
/w/{workspace}/workspaces/public_app_rate_limit:
|
|
post:
|
|
summary: Set public app rate limit for this workspace
|
|
operationId: setPublicAppRateLimit
|
|
tags:
|
|
- setting
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
requestBody:
|
|
description: Public app rate limit configuration
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
public_app_execution_limit_per_minute:
|
|
type: integer
|
|
description: Rate limit for public app executions per minute per server. NULL or 0 to disable.
|
|
example: 100
|
|
responses:
|
|
"200":
|
|
description: Successfully updated public app rate limit settings.
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: string
|
|
example: "Updated public app rate limit for workspace: workspace_id"
|
|
|
|
/oauth/login_callback/{client_name}:
|
|
post:
|
|
security: []
|
|
summary: login with oauth authorization flow
|
|
operationId: loginWithOauth
|
|
tags:
|
|
- user
|
|
parameters:
|
|
- $ref: "#/components/parameters/ClientName"
|
|
requestBody:
|
|
description: Partially filled script
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
code:
|
|
type: string
|
|
state:
|
|
type: string
|
|
|
|
responses:
|
|
"200":
|
|
description: >
|
|
Successfully authenticated. The session ID is returned in a cookie
|
|
named `token` and as plaintext response. Preferred method of
|
|
authorization is through the bearer token. The cookie is only for
|
|
browser convenience.
|
|
|
|
headers:
|
|
Set-Cookie:
|
|
schema:
|
|
type: string
|
|
example: token=abcde12345; Path=/; HttpOnly
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/oauth/connect_slack_callback:
|
|
post:
|
|
summary: connect slack callback
|
|
operationId: connectSlackCallback
|
|
tags:
|
|
- oauth
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
requestBody:
|
|
description: code endpoint
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
code:
|
|
type: string
|
|
state:
|
|
type: string
|
|
required:
|
|
- code
|
|
- state
|
|
responses:
|
|
"200":
|
|
description: slack token
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/oauth/connect_slack_callback:
|
|
post:
|
|
summary: connect slack callback instance
|
|
operationId: connectSlackCallbackInstance
|
|
tags:
|
|
- oauth
|
|
requestBody:
|
|
description: code endpoint
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
code:
|
|
type: string
|
|
state:
|
|
type: string
|
|
required:
|
|
- code
|
|
- state
|
|
responses:
|
|
"200":
|
|
description: success message
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/oauth/connect_callback/{client_name}:
|
|
post:
|
|
summary: connect callback
|
|
operationId: connectCallback
|
|
tags:
|
|
- oauth
|
|
parameters:
|
|
- $ref: "#/components/parameters/ClientName"
|
|
requestBody:
|
|
description: code endpoint
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
code:
|
|
type: string
|
|
state:
|
|
type: string
|
|
required:
|
|
- code
|
|
- state
|
|
responses:
|
|
"200":
|
|
description: oauth token
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/TokenResponse"
|
|
|
|
/w/{workspace}/oauth/create_account:
|
|
post:
|
|
summary: create OAuth account
|
|
operationId: createAccount
|
|
tags:
|
|
- oauth
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
requestBody:
|
|
description: code endpoint
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
refresh_token:
|
|
type: string
|
|
description: "OAuth refresh token. For authorization_code flow, this contains the actual refresh token. For client_credentials flow, this must be set to an empty string."
|
|
expires_in:
|
|
type: integer
|
|
client:
|
|
type: string
|
|
grant_type:
|
|
type: string
|
|
default: "authorization_code"
|
|
cc_client_id:
|
|
type: string
|
|
description: "OAuth client ID for resource-level credentials (client_credentials flow only)"
|
|
cc_client_secret:
|
|
type: string
|
|
description: "OAuth client secret for resource-level credentials (client_credentials flow only)"
|
|
cc_token_url:
|
|
type: string
|
|
description: "OAuth token URL override for resource-level authentication (client_credentials flow only)"
|
|
mcp_server_url:
|
|
type: string
|
|
description: "MCP server URL for MCP OAuth token refresh"
|
|
scopes:
|
|
type: array
|
|
items:
|
|
type: string
|
|
description: "OAuth scopes to use for token refresh. Overrides instance-level scopes."
|
|
required:
|
|
- refresh_token
|
|
- expires_in
|
|
- client
|
|
responses:
|
|
"200":
|
|
description: account set
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/oauth/connect_client_credentials/{client}:
|
|
post:
|
|
summary: connect OAuth using client credentials
|
|
operationId: connectClientCredentials
|
|
tags:
|
|
- oauth
|
|
parameters:
|
|
- name: client
|
|
in: path
|
|
description: OAuth client name
|
|
required: true
|
|
schema:
|
|
type: string
|
|
requestBody:
|
|
description: client credentials flow parameters
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
scopes:
|
|
type: array
|
|
items:
|
|
type: string
|
|
cc_client_id:
|
|
type: string
|
|
description: "OAuth client ID for resource-level authentication"
|
|
cc_client_secret:
|
|
type: string
|
|
description: "OAuth client secret for resource-level authentication"
|
|
cc_token_url:
|
|
type: string
|
|
description: "OAuth token URL override for resource-level authentication"
|
|
required:
|
|
- cc_client_id
|
|
- cc_client_secret
|
|
responses:
|
|
"200":
|
|
description: OAuth token response
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/TokenResponse"
|
|
|
|
/w/{workspace}/oauth/refresh_token/{id}:
|
|
post:
|
|
summary: refresh token
|
|
operationId: refreshToken
|
|
tags:
|
|
- oauth
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/AccountId"
|
|
requestBody:
|
|
description: variable path
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
path:
|
|
type: string
|
|
required:
|
|
- path
|
|
responses:
|
|
"200":
|
|
description: token refreshed
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/oauth/disconnect/{id}:
|
|
post:
|
|
summary: disconnect account
|
|
operationId: disconnectAccount
|
|
tags:
|
|
- oauth
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/AccountId"
|
|
responses:
|
|
"200":
|
|
description: disconnected client
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/oauth/disconnect_slack:
|
|
post:
|
|
summary: disconnect slack
|
|
operationId: disconnectSlack
|
|
tags:
|
|
- oauth
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
responses:
|
|
"200":
|
|
description: disconnected slack
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/oauth/disconnect_teams:
|
|
post:
|
|
summary: disconnect teams
|
|
operationId: disconnectTeams
|
|
tags:
|
|
- oauth
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
responses:
|
|
"200":
|
|
description: disconnected teams
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/oauth/list_logins:
|
|
get:
|
|
summary: list oauth logins
|
|
operationId: listOAuthLogins
|
|
tags:
|
|
- oauth
|
|
responses:
|
|
"200":
|
|
description: list of oauth and saml login clients
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
oauth:
|
|
type: array
|
|
items:
|
|
type: object
|
|
properties:
|
|
type:
|
|
type: string
|
|
display_name:
|
|
type: string
|
|
required:
|
|
- type
|
|
saml:
|
|
type: string
|
|
required:
|
|
- oauth
|
|
|
|
/oauth/list_connects:
|
|
get:
|
|
summary: list oauth connects
|
|
operationId: listOAuthConnects
|
|
tags:
|
|
- oauth
|
|
responses:
|
|
"200":
|
|
description: list of oauth connects clients
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
type: string
|
|
|
|
/oauth/get_connect/{client}:
|
|
get:
|
|
summary: get oauth connect
|
|
operationId: getOAuthConnect
|
|
tags:
|
|
- oauth
|
|
parameters:
|
|
- name: client
|
|
description: client name
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
responses:
|
|
"200":
|
|
description: get
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
extra_params:
|
|
type: object
|
|
scopes:
|
|
type: array
|
|
items:
|
|
type: string
|
|
grant_types:
|
|
type: array
|
|
items:
|
|
type: string
|
|
|
|
/teams/activities:
|
|
post:
|
|
summary: send update to Microsoft Teams activity
|
|
description: Respond to a Microsoft Teams activity after a workspace command is run
|
|
operationId: sendMessageToConversation
|
|
tags:
|
|
- teams
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- conversation_id
|
|
- text
|
|
properties:
|
|
conversation_id:
|
|
type: string
|
|
description: The ID of the Teams conversation/activity
|
|
success:
|
|
type: boolean
|
|
description: Used for styling the card conditionally
|
|
default: true
|
|
text:
|
|
type: string
|
|
description: The message text to be sent in the Teams card
|
|
card_block:
|
|
type: object
|
|
description: The card block to be sent in the Teams card
|
|
|
|
responses:
|
|
"200":
|
|
description: Activity processed successfully
|
|
|
|
/w/{workspace}/resources/create:
|
|
post:
|
|
summary: create resource
|
|
operationId: createResource
|
|
x-mcp-tool: true
|
|
tags:
|
|
- resource
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- name: update_if_exists
|
|
description: update the resource if it already exists (default false)
|
|
in: query
|
|
schema:
|
|
type: boolean
|
|
requestBody:
|
|
description: new resource
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/CreateResource"
|
|
responses:
|
|
"201":
|
|
description: resource created
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/resources/delete/{path}:
|
|
delete:
|
|
summary: delete resource
|
|
operationId: deleteResource
|
|
x-mcp-tool: true
|
|
tags:
|
|
- resource
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Path"
|
|
responses:
|
|
"200":
|
|
description: resource deleted
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/resources/delete_bulk:
|
|
delete:
|
|
summary: delete resources in bulk
|
|
operationId: deleteResourcesBulk
|
|
tags:
|
|
- resource
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
requestBody:
|
|
description: paths to delete
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
paths:
|
|
type: array
|
|
items:
|
|
type: string
|
|
required:
|
|
- paths
|
|
responses:
|
|
"200":
|
|
description: deleted paths
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
type: string
|
|
|
|
/w/{workspace}/resources/update/{path}:
|
|
post:
|
|
summary: update resource
|
|
operationId: updateResource
|
|
x-mcp-tool: true
|
|
tags:
|
|
- resource
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Path"
|
|
requestBody:
|
|
description: updated resource
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/EditResource"
|
|
responses:
|
|
"200":
|
|
description: resource updated
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/resources/update_value/{path}:
|
|
post:
|
|
summary: update resource value
|
|
operationId: updateResourceValue
|
|
tags:
|
|
- resource
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Path"
|
|
requestBody:
|
|
description: updated resource
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
value: {}
|
|
responses:
|
|
"200":
|
|
description: resource value updated
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/resources/get/{path}:
|
|
get:
|
|
summary: get resource
|
|
operationId: getResource
|
|
x-mcp-tool: true
|
|
tags:
|
|
- resource
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Path"
|
|
responses:
|
|
"200":
|
|
description: resource
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/Resource"
|
|
|
|
/w/{workspace}/resources/get_value_interpolated/{path}:
|
|
get:
|
|
summary: get resource interpolated (variables and resources are fully unrolled)
|
|
operationId: getResourceValueInterpolated
|
|
tags:
|
|
- resource
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Path"
|
|
- name: job_id
|
|
description: job id
|
|
in: query
|
|
schema:
|
|
type: string
|
|
format: uuid
|
|
- name: allow_cache
|
|
description: allow getting a cached value for improved performance
|
|
in: query
|
|
schema:
|
|
type: boolean
|
|
responses:
|
|
"200":
|
|
description: resource value
|
|
content:
|
|
application/json:
|
|
schema: {}
|
|
|
|
/w/{workspace}/resources/get_value/{path}:
|
|
get:
|
|
summary: get resource value
|
|
operationId: getResourceValue
|
|
tags:
|
|
- resource
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Path"
|
|
responses:
|
|
"200":
|
|
description: resource value
|
|
content:
|
|
application/json:
|
|
schema: {}
|
|
|
|
/w/{workspace}/resources/git_commit_hash/{path}:
|
|
get:
|
|
summary: get git repository latest commit hash
|
|
operationId: getGitCommitHash
|
|
tags:
|
|
- resource
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Path"
|
|
- name: git_ssh_identity
|
|
in: query
|
|
schema:
|
|
type: string
|
|
responses:
|
|
"200":
|
|
description: git commit hash
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
commit_hash:
|
|
type: string
|
|
description: Latest commit hash from git ls-remote
|
|
required:
|
|
- commit_hash
|
|
|
|
/w/{workspace}/resources/exists/{path}:
|
|
get:
|
|
summary: does resource exists
|
|
operationId: existsResource
|
|
tags:
|
|
- resource
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Path"
|
|
responses:
|
|
"200":
|
|
description: does resource exists
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: boolean
|
|
|
|
/w/{workspace}/resources/list:
|
|
get:
|
|
summary: list resources
|
|
operationId: listResource
|
|
x-mcp-tool: true
|
|
tags:
|
|
- resource
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Page"
|
|
- $ref: "#/components/parameters/PerPage"
|
|
- name: resource_type
|
|
description: resource_types to list from, separated by ',',
|
|
in: query
|
|
schema:
|
|
type: string
|
|
- name: resource_type_exclude
|
|
description: resource_types to not list from, separated by ',',
|
|
in: query
|
|
schema:
|
|
type: string
|
|
- name: path_start
|
|
description: filter resources by path prefix
|
|
in: query
|
|
schema:
|
|
type: string
|
|
- name: path
|
|
description: exact path match filter
|
|
in: query
|
|
schema:
|
|
type: string
|
|
- name: description
|
|
description: pattern match filter for description field (case-insensitive)
|
|
in: query
|
|
schema:
|
|
type: string
|
|
- name: value
|
|
description: JSONB subset match filter using base64 encoded JSON
|
|
in: query
|
|
schema:
|
|
type: string
|
|
- name: broad_filter
|
|
description: broad search across multiple fields (case-insensitive substring match)
|
|
in: query
|
|
schema:
|
|
type: string
|
|
- name: label
|
|
description: Filter by label
|
|
in: query
|
|
required: false
|
|
schema:
|
|
type: string
|
|
responses:
|
|
"200":
|
|
description: resource list
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/ListableResource"
|
|
|
|
/w/{workspace}/resources/list_search:
|
|
get:
|
|
summary: list resources for search
|
|
operationId: listSearchResource
|
|
tags:
|
|
- resource
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
responses:
|
|
"200":
|
|
description: resource list
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
type: object
|
|
properties:
|
|
path:
|
|
type: string
|
|
value: {}
|
|
required:
|
|
- path
|
|
- value
|
|
|
|
/w/{workspace}/resources/mcp_tools/{path}:
|
|
get:
|
|
summary: get MCP tools from resource
|
|
operationId: getMcpTools
|
|
tags:
|
|
- resource
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Path"
|
|
responses:
|
|
"200":
|
|
description: list of MCP tools
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
type: object
|
|
properties:
|
|
name:
|
|
type: string
|
|
description:
|
|
type: string
|
|
parameters:
|
|
type: object
|
|
required:
|
|
- name
|
|
- parameters
|
|
|
|
/w/{workspace}/resources/list_names/{name}:
|
|
get:
|
|
summary: list resource names
|
|
operationId: listResourceNames
|
|
tags:
|
|
- resource
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Name"
|
|
responses:
|
|
"200":
|
|
description: resource list names
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
type: object
|
|
properties:
|
|
name:
|
|
type: string
|
|
path:
|
|
type: string
|
|
required:
|
|
- name
|
|
- path
|
|
|
|
/w/{workspace}/resources/type/create:
|
|
post:
|
|
summary: create resource_type
|
|
operationId: createResourceType
|
|
tags:
|
|
- resource
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
requestBody:
|
|
description: new resource_type
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ResourceType"
|
|
responses:
|
|
"201":
|
|
description: resource_type created
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/resources/file_resource_type_to_file_ext_map:
|
|
get:
|
|
summary: get map from resource type to format extension
|
|
operationId: fileResourceTypeToFileExtMap
|
|
tags:
|
|
- resource
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
responses:
|
|
"200":
|
|
description: map from resource type to file resource info
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
additionalProperties:
|
|
type: object
|
|
properties:
|
|
format_extension:
|
|
type: string
|
|
nullable: true
|
|
is_fileset:
|
|
type: boolean
|
|
|
|
/w/{workspace}/resources/type/delete/{path}:
|
|
delete:
|
|
summary: delete resource_type
|
|
operationId: deleteResourceType
|
|
tags:
|
|
- resource
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Path"
|
|
responses:
|
|
"200":
|
|
description: resource_type deleted
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/resources/type/update/{path}:
|
|
post:
|
|
summary: update resource_type
|
|
operationId: updateResourceType
|
|
tags:
|
|
- resource
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Path"
|
|
requestBody:
|
|
description: updated resource_type
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/EditResourceType"
|
|
responses:
|
|
"200":
|
|
description: resource_type updated
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/resources/type/get/{path}:
|
|
get:
|
|
summary: get resource_type
|
|
operationId: getResourceType
|
|
tags:
|
|
- resource
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Path"
|
|
responses:
|
|
"200":
|
|
description: resource_type deleted
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ResourceType"
|
|
|
|
/w/{workspace}/resources/type/exists/{path}:
|
|
get:
|
|
summary: does resource_type exists
|
|
operationId: existsResourceType
|
|
tags:
|
|
- resource
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Path"
|
|
responses:
|
|
"200":
|
|
description: does resource_type exist
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: boolean
|
|
|
|
/w/{workspace}/resources/type/list:
|
|
get:
|
|
summary: list resource_types
|
|
operationId: listResourceType
|
|
x-mcp-tool: true
|
|
tags:
|
|
- resource
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
responses:
|
|
"200":
|
|
description: resource_type list
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/ResourceType"
|
|
|
|
/w/{workspace}/resources/type/listnames:
|
|
get:
|
|
summary: list resource_types names
|
|
operationId: listResourceTypeNames
|
|
tags:
|
|
- resource
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
responses:
|
|
"200":
|
|
description: resource_type list
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
type: string
|
|
|
|
/w/{workspace}/npm_proxy/metadata/{package}:
|
|
get:
|
|
summary: get npm package metadata from private registry
|
|
operationId: getNpmPackageMetadata
|
|
tags:
|
|
- npm_proxy
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- name: package
|
|
description: npm package name
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
responses:
|
|
"200":
|
|
description: package metadata
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
tags:
|
|
type: object
|
|
additionalProperties:
|
|
type: string
|
|
versions:
|
|
type: array
|
|
items:
|
|
type: string
|
|
|
|
/w/{workspace}/npm_proxy/resolve/{package}:
|
|
get:
|
|
summary: resolve npm package version from private registry
|
|
operationId: resolveNpmPackageVersion
|
|
tags:
|
|
- npm_proxy
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- name: package
|
|
description: npm package name
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
- name: tag
|
|
description: version tag or reference
|
|
in: query
|
|
required: false
|
|
schema:
|
|
type: string
|
|
responses:
|
|
"200":
|
|
description: resolved version
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
version:
|
|
type: string
|
|
nullable: true
|
|
|
|
/w/{workspace}/npm_proxy/filetree/{package}/{version}:
|
|
get:
|
|
summary: get npm package file tree from private registry
|
|
operationId: getNpmPackageFiletree
|
|
tags:
|
|
- npm_proxy
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- name: package
|
|
description: npm package name
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
- name: version
|
|
description: package version
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
responses:
|
|
"200":
|
|
description: package file tree
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
default:
|
|
type: string
|
|
files:
|
|
type: array
|
|
items:
|
|
type: object
|
|
properties:
|
|
name:
|
|
type: string
|
|
|
|
/w/{workspace}/npm_proxy/file/{package}/{version}/{filepath}:
|
|
get:
|
|
summary: get specific file from npm package in private registry
|
|
operationId: getNpmPackageFile
|
|
tags:
|
|
- npm_proxy
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- name: package
|
|
description: npm package name
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
- name: version
|
|
description: package version
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
- name: filepath
|
|
description: file path within package
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
responses:
|
|
"200":
|
|
description: file content
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/embeddings/query_resource_types:
|
|
get:
|
|
summary: query resource types by similarity
|
|
operationId: queryResourceTypes
|
|
tags:
|
|
- resource
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- name: text
|
|
description: query text
|
|
in: query
|
|
required: true
|
|
schema:
|
|
type: string
|
|
- name: limit
|
|
description: query limit
|
|
in: query
|
|
required: false
|
|
schema:
|
|
type: number
|
|
responses:
|
|
"200":
|
|
description: resource type details
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
type: object
|
|
properties:
|
|
name:
|
|
type: string
|
|
score:
|
|
type: number
|
|
schema: {}
|
|
required:
|
|
- name
|
|
- score
|
|
|
|
/integrations/hub/list:
|
|
get:
|
|
summary: list hub integrations
|
|
operationId: listHubIntegrations
|
|
tags:
|
|
- integration
|
|
parameters:
|
|
- name: kind
|
|
description: query integrations kind
|
|
in: query
|
|
required: false
|
|
schema:
|
|
type: string
|
|
responses:
|
|
"200":
|
|
description: integrations details
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
type: object
|
|
properties:
|
|
name:
|
|
type: string
|
|
required:
|
|
- name
|
|
|
|
/flows/hub/list:
|
|
get:
|
|
summary: list all hub flows
|
|
operationId: listHubFlows
|
|
tags:
|
|
- flow
|
|
responses:
|
|
"200":
|
|
description: hub flows list
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
flows:
|
|
type: array
|
|
items:
|
|
type: object
|
|
properties:
|
|
id:
|
|
type: number
|
|
flow_id:
|
|
type: number
|
|
summary:
|
|
type: string
|
|
apps:
|
|
type: array
|
|
items:
|
|
type: string
|
|
approved:
|
|
type: boolean
|
|
votes:
|
|
type: number
|
|
|
|
required:
|
|
- id
|
|
- flow_id
|
|
- summary
|
|
- apps
|
|
- approved
|
|
- votes
|
|
|
|
/flows/hub/get/{id}:
|
|
get:
|
|
summary: get hub flow by id
|
|
operationId: getHubFlowById
|
|
tags:
|
|
- flow
|
|
parameters:
|
|
- $ref: "#/components/parameters/PathId"
|
|
responses:
|
|
"200":
|
|
description: flow
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
flow:
|
|
$ref: "../../openflow.openapi.yaml#/components/schemas/OpenFlow"
|
|
|
|
/apps/hub/list:
|
|
get:
|
|
summary: list all hub apps
|
|
operationId: listHubApps
|
|
tags:
|
|
- app
|
|
responses:
|
|
"200":
|
|
description: hub apps list
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
apps:
|
|
type: array
|
|
items:
|
|
type: object
|
|
properties:
|
|
id:
|
|
type: number
|
|
app_id:
|
|
type: number
|
|
summary:
|
|
type: string
|
|
apps:
|
|
type: array
|
|
items:
|
|
type: string
|
|
approved:
|
|
type: boolean
|
|
votes:
|
|
type: number
|
|
required:
|
|
- id
|
|
- app_id
|
|
- summary
|
|
- apps
|
|
- approved
|
|
- votes
|
|
|
|
/apps/hub/get/{id}:
|
|
get:
|
|
summary: get hub app by id
|
|
operationId: getHubAppById
|
|
tags:
|
|
- app
|
|
parameters:
|
|
- $ref: "#/components/parameters/PathId"
|
|
responses:
|
|
"200":
|
|
description: app
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
app:
|
|
type: object
|
|
properties:
|
|
summary:
|
|
type: string
|
|
value: {}
|
|
required:
|
|
- summary
|
|
- value
|
|
required:
|
|
- app
|
|
|
|
/apps/hub/get_raw/{id}:
|
|
get:
|
|
summary: get hub raw app by id
|
|
operationId: getHubRawAppById
|
|
tags:
|
|
- app
|
|
parameters:
|
|
- $ref: "#/components/parameters/PathId"
|
|
responses:
|
|
"200":
|
|
description: raw app
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
app:
|
|
type: object
|
|
properties:
|
|
summary:
|
|
type: string
|
|
value: {}
|
|
required:
|
|
- summary
|
|
- value
|
|
required:
|
|
- app
|
|
|
|
/apps_u/public_app_by_custom_path/{custom_path}:
|
|
get:
|
|
summary: get public app by custom path
|
|
operationId: getPublicAppByCustomPath
|
|
tags:
|
|
- app
|
|
parameters:
|
|
- $ref: "#/components/parameters/CustomPath"
|
|
responses:
|
|
"200":
|
|
description: app details
|
|
content:
|
|
application/json:
|
|
schema:
|
|
allOf:
|
|
- $ref: "#/components/schemas/AppWithLastVersion"
|
|
- type: object
|
|
properties:
|
|
workspace_id:
|
|
type: string
|
|
|
|
/scripts/hub/get/{path}:
|
|
get:
|
|
summary: get hub script content by path
|
|
operationId: getHubScriptContentByPath
|
|
tags:
|
|
- script
|
|
parameters:
|
|
- $ref: "#/components/parameters/ScriptPath"
|
|
responses:
|
|
"200":
|
|
description: script details
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/scripts/hub/get_full/{path}:
|
|
get:
|
|
summary: get full hub script by path
|
|
operationId: getHubScriptByPath
|
|
tags:
|
|
- script
|
|
parameters:
|
|
- $ref: "#/components/parameters/ScriptPath"
|
|
responses:
|
|
"200":
|
|
description: script details
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
content:
|
|
type: string
|
|
lockfile:
|
|
type: string
|
|
schema: {}
|
|
language:
|
|
type: string
|
|
summary:
|
|
type: string
|
|
required:
|
|
- content
|
|
- language
|
|
|
|
/scripts/hub/pick/{path}:
|
|
get:
|
|
summary: record hub script pick
|
|
operationId: pickHubScriptByPath
|
|
tags:
|
|
- script
|
|
parameters:
|
|
- $ref: "#/components/parameters/ScriptPath"
|
|
responses:
|
|
"200":
|
|
description: script pick recorded
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
success:
|
|
type: boolean
|
|
required:
|
|
- success
|
|
|
|
/scripts/hub/top:
|
|
get:
|
|
summary: get top hub scripts
|
|
operationId: getTopHubScripts
|
|
tags:
|
|
- script
|
|
parameters:
|
|
- name: limit
|
|
description: query limit
|
|
in: query
|
|
required: false
|
|
schema:
|
|
type: number
|
|
- name: app
|
|
description: query scripts app
|
|
in: query
|
|
required: false
|
|
schema:
|
|
type: string
|
|
- name: kind
|
|
description: query scripts kind
|
|
in: query
|
|
required: false
|
|
schema:
|
|
type: string
|
|
responses:
|
|
"200":
|
|
description: hub scripts list
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
asks:
|
|
type: array
|
|
items:
|
|
type: object
|
|
properties:
|
|
id:
|
|
type: number
|
|
ask_id:
|
|
type: number
|
|
summary:
|
|
type: string
|
|
app:
|
|
type: string
|
|
version_id:
|
|
type: number
|
|
kind:
|
|
$ref: "#/components/schemas/HubScriptKind"
|
|
votes:
|
|
type: number
|
|
views:
|
|
type: number
|
|
required:
|
|
- id
|
|
- ask_id
|
|
- summary
|
|
- app
|
|
- version_id
|
|
- kind
|
|
- views
|
|
- votes
|
|
|
|
/embeddings/query_hub_scripts:
|
|
get:
|
|
summary: query hub scripts by similarity
|
|
operationId: queryHubScripts
|
|
tags:
|
|
- script
|
|
parameters:
|
|
- name: text
|
|
description: query text
|
|
in: query
|
|
required: true
|
|
schema:
|
|
type: string
|
|
- name: kind
|
|
description: query scripts kind
|
|
in: query
|
|
required: false
|
|
schema:
|
|
type: string
|
|
- name: limit
|
|
description: query limit
|
|
in: query
|
|
required: false
|
|
schema:
|
|
type: number
|
|
- name: app
|
|
description: query scripts app
|
|
in: query
|
|
required: false
|
|
schema:
|
|
type: string
|
|
responses:
|
|
"200":
|
|
description: script details
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
type: object
|
|
properties:
|
|
ask_id:
|
|
type: number
|
|
id:
|
|
type: number
|
|
version_id:
|
|
type: number
|
|
summary:
|
|
type: string
|
|
app:
|
|
type: string
|
|
kind:
|
|
$ref: "#/components/schemas/HubScriptKind"
|
|
score:
|
|
type: number
|
|
required:
|
|
- ask_id
|
|
- id
|
|
- version_id
|
|
- summary
|
|
- app
|
|
- kind
|
|
- score
|
|
|
|
/w/{workspace}/scripts/list_search:
|
|
get:
|
|
summary: list scripts for search
|
|
operationId: listSearchScript
|
|
tags:
|
|
- script
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
responses:
|
|
"200":
|
|
description: script list
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
type: object
|
|
properties:
|
|
path:
|
|
type: string
|
|
content:
|
|
type: string
|
|
required:
|
|
- path
|
|
- content
|
|
|
|
/w/{workspace}/scripts/list:
|
|
get:
|
|
summary: list all scripts
|
|
operationId: listScripts
|
|
x-mcp-tool: true
|
|
tags:
|
|
- script
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Page"
|
|
- $ref: "#/components/parameters/PerPage"
|
|
- $ref: "#/components/parameters/OrderDesc"
|
|
- $ref: "#/components/parameters/CreatedBy"
|
|
- name: path_start
|
|
description: mask to filter matching starting path
|
|
in: query
|
|
schema:
|
|
type: string
|
|
- name: path_exact
|
|
description: mask to filter exact matching path
|
|
in: query
|
|
schema:
|
|
type: string
|
|
- name: first_parent_hash
|
|
description: mask to filter scripts whom first direct parent has exact hash
|
|
in: query
|
|
schema:
|
|
type: string
|
|
- name: last_parent_hash
|
|
description: |
|
|
mask to filter scripts whom last parent in the chain has exact hash.
|
|
Beware that each script stores only a limited number of parents. Hence
|
|
the last parent hash for a script is not necessarily its top-most parent.
|
|
To find the top-most parent you will have to jump from last to last hash
|
|
until finding the parent
|
|
in: query
|
|
schema:
|
|
type: string
|
|
- name: parent_hash
|
|
description: |
|
|
is the hash present in the array of stored parent hashes for this script.
|
|
The same warning applies than for last_parent_hash. A script only store a
|
|
limited number of direct parent
|
|
in: query
|
|
schema:
|
|
type: string
|
|
- name: show_archived
|
|
description: |
|
|
(default false)
|
|
show only the archived files.
|
|
when multiple archived hash share the same path, only the ones with the latest create_at
|
|
are
|
|
ed.
|
|
in: query
|
|
schema:
|
|
type: boolean
|
|
- name: include_without_main
|
|
description: |
|
|
(default false)
|
|
include scripts without an exported main function
|
|
in: query
|
|
schema:
|
|
type: boolean
|
|
- name: include_draft_only
|
|
description: |
|
|
(default false)
|
|
include scripts that have no deployed version
|
|
in: query
|
|
schema:
|
|
type: boolean
|
|
- name: is_template
|
|
description: |
|
|
(default regardless)
|
|
if true show only the templates
|
|
if false show only the non templates
|
|
if not defined, show all regardless of if the script is a template
|
|
in: query
|
|
schema:
|
|
type: boolean
|
|
- name: kinds
|
|
description: |
|
|
(default regardless)
|
|
script kinds to filter, split by comma
|
|
in: query
|
|
schema:
|
|
type: string
|
|
- name: starred_only
|
|
description: |
|
|
(default false)
|
|
show only the starred items
|
|
in: query
|
|
schema:
|
|
type: boolean
|
|
- name: with_deployment_msg
|
|
description: |
|
|
(default false)
|
|
include deployment message
|
|
in: query
|
|
schema:
|
|
type: boolean
|
|
- name: languages
|
|
in: query
|
|
description: |
|
|
Filter to only include scripts written in the given languages.
|
|
Accepts multiple values as a comma-separated list.
|
|
schema:
|
|
type: string
|
|
- name: without_description
|
|
in: query
|
|
description: |
|
|
(default false)
|
|
If true, the description field will be omitted from the response.
|
|
schema:
|
|
type: boolean
|
|
- name: dedicated_worker
|
|
in: query
|
|
description: |
|
|
(default regardless)
|
|
If true, show only scripts with dedicated_worker enabled.
|
|
If false, show only scripts with dedicated_worker disabled.
|
|
schema:
|
|
type: boolean
|
|
- name: label
|
|
in: query
|
|
required: false
|
|
schema:
|
|
type: string
|
|
description: Filter by label
|
|
|
|
responses:
|
|
"200":
|
|
description: All scripts
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/Script"
|
|
|
|
/w/{workspace}/scripts/list_paths:
|
|
get:
|
|
summary: list all scripts paths
|
|
operationId: listScriptPaths
|
|
tags:
|
|
- script
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
responses:
|
|
"200":
|
|
description: list of script paths
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: array
|
|
items:
|
|
type: string
|
|
|
|
/w/{workspace}/drafts/create:
|
|
post:
|
|
summary: create draft
|
|
operationId: createDraft
|
|
tags:
|
|
- draft
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
path:
|
|
type: string
|
|
typ:
|
|
type: string
|
|
enum: ["flow", "script", "app"]
|
|
value: {}
|
|
required:
|
|
- path
|
|
- typ
|
|
- enum
|
|
responses:
|
|
"201":
|
|
description: draft created
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/drafts/delete/{kind}/{path}:
|
|
delete:
|
|
summary: delete draft
|
|
operationId: deleteDraft
|
|
tags:
|
|
- draft
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- name: kind
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
enum:
|
|
- script
|
|
- flow
|
|
- app
|
|
- $ref: "#/components/parameters/ScriptPath"
|
|
responses:
|
|
"200":
|
|
description: draft deleted
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/scripts/create:
|
|
post:
|
|
summary: create script
|
|
operationId: createScript
|
|
x-mcp-tool: true
|
|
x-mcp-instructions: "To create a script, specify the path (e.g., 'f/my_folder/my_script'), the content (source code), and the language. For TypeScript, use 'bun' unless deno-specific APIs are needed."
|
|
x-mcp-tool-include-fields:
|
|
- path
|
|
- content
|
|
- language
|
|
- summary
|
|
- description
|
|
- kind
|
|
- tag
|
|
- deployment_message
|
|
tags:
|
|
- script
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
requestBody:
|
|
description: Partially filled script
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/NewScript"
|
|
|
|
responses:
|
|
"201":
|
|
description: script created
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/scripts/toggle_workspace_error_handler/p/{path}:
|
|
post:
|
|
summary: Toggle ON and OFF the workspace error handler for a given script
|
|
operationId: toggleWorkspaceErrorHandlerForScript
|
|
tags:
|
|
- script
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/ScriptPath"
|
|
requestBody:
|
|
description: Workspace error handler enabled
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
muted:
|
|
type: boolean
|
|
responses:
|
|
"200":
|
|
description: error handler toggled
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/workers/custom_tags:
|
|
get:
|
|
summary: get all instance custom tags (tags are used to dispatch jobs to
|
|
different worker groups)
|
|
operationId: getCustomTags
|
|
tags:
|
|
- worker
|
|
parameters:
|
|
- name: show_workspace_restriction
|
|
in: query
|
|
schema:
|
|
type: boolean
|
|
required: false
|
|
responses:
|
|
"200":
|
|
description: list of custom tags
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
type: string
|
|
|
|
/w/{workspace}/workers/custom_tags:
|
|
get:
|
|
summary: get custom tags available for this workspace
|
|
operationId: getCustomTagsForWorkspace
|
|
tags:
|
|
- worker
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
responses:
|
|
"200":
|
|
description: list of custom tags for workspace
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
type: string
|
|
|
|
/workers/get_default_tags:
|
|
get:
|
|
summary: get all instance default tags
|
|
operationId: geDefaultTags
|
|
tags:
|
|
- worker
|
|
responses:
|
|
"200":
|
|
description: list of default tags
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
type: string
|
|
|
|
/workers/is_default_tags_per_workspace:
|
|
get:
|
|
summary: is default tags per workspace
|
|
operationId: isDefaultTagsPerWorkspace
|
|
tags:
|
|
- worker
|
|
responses:
|
|
"200":
|
|
description: is the default tags per workspace
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: boolean
|
|
|
|
/w/{workspace}/workspace_dependencies/create:
|
|
post:
|
|
summary: create workspace dependencies
|
|
operationId: createWorkspaceDependencies
|
|
tags:
|
|
- workspace_dependencies
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
requestBody:
|
|
description: New workspace dependencies
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/NewWorkspaceDependencies"
|
|
|
|
responses:
|
|
"201":
|
|
description: workspace dependencies created
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/workspace_dependencies/archive/{language}:
|
|
post:
|
|
summary: archive workspace dependencies (require admin)
|
|
operationId: archiveWorkspaceDependencies
|
|
tags:
|
|
- workspace_dependencies
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- name: language
|
|
in: path
|
|
required: true
|
|
schema:
|
|
$ref: "#/components/schemas/ScriptLang"
|
|
- name: name
|
|
in: query
|
|
required: false
|
|
schema:
|
|
type: string
|
|
|
|
responses:
|
|
"200":
|
|
description: result
|
|
content:
|
|
application/json:
|
|
schema: {}
|
|
|
|
/w/{workspace}/workspace_dependencies/delete/{language}:
|
|
post:
|
|
summary: delete workspace dependencies (require admin)
|
|
operationId: deleteWorkspaceDependencies
|
|
tags:
|
|
- workspace_dependencies
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- name: language
|
|
in: path
|
|
required: true
|
|
schema:
|
|
$ref: "#/components/schemas/ScriptLang"
|
|
- name: name
|
|
in: query
|
|
required: false
|
|
schema:
|
|
type: string
|
|
|
|
responses:
|
|
"200":
|
|
description: result
|
|
content:
|
|
application/json:
|
|
schema: {}
|
|
|
|
/w/{workspace}/workspace_dependencies/list:
|
|
get:
|
|
summary: list all workspace dependencies
|
|
operationId: listWorkspaceDependencies
|
|
tags:
|
|
- workspace_dependencies
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
responses:
|
|
"200":
|
|
description: All workspace dependencies
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/WorkspaceDependencies"
|
|
|
|
/w/{workspace}/workspace_dependencies/get_latest/{language}:
|
|
get:
|
|
summary: get latest workspace dependencies by language and name
|
|
operationId: getLatestWorkspaceDependencies
|
|
tags:
|
|
- workspace_dependencies
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- name: language
|
|
in: path
|
|
required: true
|
|
schema:
|
|
$ref: "#/components/schemas/ScriptLang"
|
|
- name: name
|
|
in: query
|
|
required: false
|
|
schema:
|
|
type: string
|
|
responses:
|
|
"200":
|
|
description: Latest workspace dependencies
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/WorkspaceDependencies"
|
|
|
|
/w/{workspace}/scripts/archive/p/{path}:
|
|
post:
|
|
summary: archive script by path
|
|
operationId: archiveScriptByPath
|
|
tags:
|
|
- script
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/ScriptPath"
|
|
responses:
|
|
"200":
|
|
description: script archived
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/scripts/archive/h/{hash}:
|
|
post:
|
|
summary: archive script by hash
|
|
operationId: archiveScriptByHash
|
|
tags:
|
|
- script
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/ScriptHash"
|
|
responses:
|
|
"200":
|
|
description: script details
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/Script"
|
|
|
|
/w/{workspace}/scripts/delete/h/{hash}:
|
|
post:
|
|
summary: delete script by hash (erase content but keep hash, require admin)
|
|
operationId: deleteScriptByHash
|
|
x-mcp-tool: true
|
|
tags:
|
|
- script
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/ScriptHash"
|
|
responses:
|
|
"200":
|
|
description: script details
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/Script"
|
|
|
|
/w/{workspace}/scripts/delete/p/{path}:
|
|
post:
|
|
summary: delete script at a given path (require admin)
|
|
operationId: deleteScriptByPath
|
|
x-mcp-tool: true
|
|
tags:
|
|
- script
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/ScriptPath"
|
|
- name: keep_captures
|
|
description: keep captures
|
|
in: query
|
|
schema:
|
|
type: boolean
|
|
responses:
|
|
"200":
|
|
description: script path
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/scripts/delete_bulk:
|
|
delete:
|
|
summary: delete scripts in bulk
|
|
operationId: deleteScriptsBulk
|
|
tags:
|
|
- script
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
requestBody:
|
|
description: paths to delete
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
paths:
|
|
type: array
|
|
items:
|
|
type: string
|
|
required:
|
|
- paths
|
|
responses:
|
|
"200":
|
|
description: deleted paths
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
type: string
|
|
|
|
/w/{workspace}/scripts/get/p/{path}:
|
|
get:
|
|
summary: get script by path
|
|
operationId: getScriptByPath
|
|
x-mcp-tool: true
|
|
tags:
|
|
- script
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/ScriptPath"
|
|
- name: with_starred_info
|
|
in: query
|
|
schema:
|
|
type: boolean
|
|
responses:
|
|
"200":
|
|
description: script details
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/Script"
|
|
|
|
/w/{workspace}/scripts/get_triggers_count/{path}:
|
|
get:
|
|
summary: get triggers count of script
|
|
operationId: getTriggersCountOfScript
|
|
tags:
|
|
- script
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/ScriptPath"
|
|
responses:
|
|
"200":
|
|
description: triggers count
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/TriggersCount"
|
|
|
|
/w/{workspace}/scripts/list_tokens/{path}:
|
|
get:
|
|
summary: get tokens with script scope
|
|
operationId: listTokensOfScript
|
|
tags:
|
|
- script
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/ScriptPath"
|
|
responses:
|
|
"200":
|
|
description: tokens list
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/TruncatedToken"
|
|
|
|
/w/{workspace}/scripts/get/draft/{path}:
|
|
get:
|
|
summary: get script by path with draft
|
|
operationId: getScriptByPathWithDraft
|
|
tags:
|
|
- script
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/ScriptPath"
|
|
responses:
|
|
"200":
|
|
description: script details
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/NewScriptWithDraft"
|
|
|
|
/w/{workspace}/scripts/history/p/{path}:
|
|
get:
|
|
summary: get history of a script by path
|
|
operationId: getScriptHistoryByPath
|
|
tags:
|
|
- script
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/ScriptPath"
|
|
responses:
|
|
"200":
|
|
description: script history
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/ScriptHistory"
|
|
|
|
/w/{workspace}/scripts/list_paths_from_workspace_runnable/{path}:
|
|
get:
|
|
summary: list script paths using provided script as a relative import
|
|
operationId: listScriptPathsFromWorkspaceRunnable
|
|
tags:
|
|
- script
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/ScriptPath"
|
|
responses:
|
|
"200":
|
|
description: list of script paths
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
type: string
|
|
|
|
/w/{workspace}/scripts/get_latest_version/{path}:
|
|
get:
|
|
summary: get scripts's latest version (hash)
|
|
operationId: getScriptLatestVersion
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/ScriptPath"
|
|
tags:
|
|
- script
|
|
responses:
|
|
"200":
|
|
description: Script version/hash
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ScriptHistory"
|
|
|
|
/w/{workspace}/scripts/history_update/h/{hash}/p/{path}:
|
|
post:
|
|
summary: update history of a script
|
|
operationId: updateScriptHistory
|
|
tags:
|
|
- script
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/ScriptHash"
|
|
- $ref: "#/components/parameters/ScriptPath"
|
|
requestBody:
|
|
description: Script deployment message
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
deployment_msg:
|
|
type: string
|
|
responses:
|
|
"200":
|
|
description: success
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/scripts/list_dedicated_with_deps:
|
|
get:
|
|
summary: list dedicated worker scripts with workspace dependency annotations
|
|
operationId: listDedicatedWithDeps
|
|
tags:
|
|
- script
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
responses:
|
|
"200":
|
|
description: list of dedicated scripts with their workspace dependency names
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
type: object
|
|
properties:
|
|
path:
|
|
type: string
|
|
language:
|
|
type: string
|
|
enum:
|
|
- python3
|
|
- deno
|
|
- go
|
|
- bash
|
|
- powershell
|
|
- postgresql
|
|
- mysql
|
|
- bigquery
|
|
- snowflake
|
|
- mssql
|
|
- graphql
|
|
- nativets
|
|
- bun
|
|
- bunnative
|
|
- php
|
|
- rust
|
|
- ansible
|
|
- csharp
|
|
- oracledb
|
|
- duckdb
|
|
- java
|
|
- ruby
|
|
workspace_dep_names:
|
|
type: array
|
|
items:
|
|
type: string
|
|
required:
|
|
- path
|
|
- language
|
|
- workspace_dep_names
|
|
|
|
/w/{workspace}/scripts/raw/p/{path}:
|
|
get:
|
|
summary: raw script by path
|
|
operationId: rawScriptByPath
|
|
tags:
|
|
- script
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/ScriptPath"
|
|
responses:
|
|
"200":
|
|
description: script content
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/scripts_u/tokened_raw/{workspace}/{token}/{path}:
|
|
get:
|
|
summary:
|
|
raw script by path with a token (mostly used by lsp to be used with
|
|
import maps to resolve scripts)
|
|
operationId: rawScriptByPathTokened
|
|
tags:
|
|
- script
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Token"
|
|
- $ref: "#/components/parameters/ScriptPath"
|
|
responses:
|
|
"200":
|
|
description: script content
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/scripts/exists/p/{path}:
|
|
get:
|
|
summary: exists script by path
|
|
operationId: existsScriptByPath
|
|
tags:
|
|
- script
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/ScriptPath"
|
|
responses:
|
|
"200":
|
|
description: does it exists
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: boolean
|
|
|
|
/w/{workspace}/scripts/get/h/{hash}:
|
|
get:
|
|
summary: get script by hash
|
|
operationId: getScriptByHash
|
|
tags:
|
|
- script
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/ScriptHash"
|
|
- name: with_starred_info
|
|
in: query
|
|
schema:
|
|
type: boolean
|
|
- name: authed
|
|
in: query
|
|
schema:
|
|
type: boolean
|
|
responses:
|
|
"200":
|
|
description: script details
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/Script"
|
|
|
|
/w/{workspace}/scripts/raw/h/{path}:
|
|
get:
|
|
summary: raw script by hash
|
|
operationId: rawScriptByHash
|
|
tags:
|
|
- script
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/ScriptPath"
|
|
responses:
|
|
"200":
|
|
description: script content
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/scripts/deployment_status/h/{hash}:
|
|
get:
|
|
summary: get script deployment status
|
|
operationId: getScriptDeploymentStatus
|
|
tags:
|
|
- script
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/ScriptHash"
|
|
responses:
|
|
"200":
|
|
description: script details
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
lock:
|
|
type: string
|
|
lock_error_logs:
|
|
type: string
|
|
job_id:
|
|
type: string
|
|
format: uuid
|
|
|
|
/w/{workspace}/scripts/raw_temp/store:
|
|
post:
|
|
summary: store raw script content temporarily for CLI lock generation
|
|
operationId: storeRawScriptTemp
|
|
tags:
|
|
- script
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
requestBody:
|
|
description: script content to store
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: string
|
|
responses:
|
|
"200":
|
|
description: hash of stored content
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/scripts/raw_temp/diff:
|
|
post:
|
|
summary: diff local script hashes against deployed versions
|
|
operationId: diffRawScriptsWithDeployed
|
|
tags:
|
|
- script
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
requestBody:
|
|
description: scripts and workspace deps to diff against deployed versions
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- scripts
|
|
properties:
|
|
scripts:
|
|
description: map of script path to SHA256 content hash
|
|
type: object
|
|
additionalProperties:
|
|
type: string
|
|
workspace_deps:
|
|
description: workspace dependencies to diff
|
|
type: array
|
|
items:
|
|
type: object
|
|
required:
|
|
- path
|
|
- language
|
|
- hash
|
|
properties:
|
|
path:
|
|
description: CLI path (e.g. dependencies/package.json)
|
|
type: string
|
|
language:
|
|
$ref: "#/components/schemas/ScriptLang"
|
|
name:
|
|
description: named workspace dependency (null for default)
|
|
type: string
|
|
hash:
|
|
description: SHA256 content hash
|
|
type: string
|
|
responses:
|
|
"200":
|
|
description: list of paths that differ from deployed versions
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
type: string
|
|
|
|
/w/{workspace}/jobs/list_selected_job_groups:
|
|
# We use post because sending a huge array as a query param can produce
|
|
# URLs that may be too long
|
|
post:
|
|
summary: list selected jobs script/flow schemas grouped by (kind, path)
|
|
operationId: listSelectedJobGroups
|
|
tags:
|
|
- job
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
requestBody:
|
|
description: script args
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
type: string
|
|
format: uuid
|
|
responses:
|
|
"200":
|
|
description: result
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: array
|
|
items:
|
|
type: object
|
|
properties:
|
|
kind:
|
|
type: string
|
|
enum: ["script", "flow"]
|
|
script_path:
|
|
type: string
|
|
latest_schema:
|
|
type: object
|
|
schemas:
|
|
type: array
|
|
items:
|
|
type: object
|
|
properties:
|
|
schema:
|
|
type: object
|
|
script_hash:
|
|
type: string
|
|
job_ids:
|
|
type: array
|
|
items:
|
|
type: string
|
|
required: [schema, script_hash, job_ids]
|
|
required:
|
|
- kind
|
|
- script_path
|
|
- latest_schema
|
|
- schemas
|
|
|
|
/w/{workspace}/jobs/run/p/{path}:
|
|
post:
|
|
summary: run script by path
|
|
operationId: runScriptByPath
|
|
x-mcp-tool: true
|
|
x-mcp-instructions: "You should first use getScriptByPath to retrieve the script's schema and understand what arguments are expected."
|
|
x-mcp-tool-include-query-params: []
|
|
tags:
|
|
- job
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/ScriptPath"
|
|
- name: scheduled_for
|
|
description: when to schedule this job (leave empty for immediate run)
|
|
in: query
|
|
schema:
|
|
type: string
|
|
format: date-time
|
|
- name: scheduled_in_secs
|
|
description: schedule the script to execute in the number of seconds starting now
|
|
in: query
|
|
schema:
|
|
type: integer
|
|
- name: skip_preprocessor
|
|
description: skip the preprocessor
|
|
in: query
|
|
schema:
|
|
type: boolean
|
|
- $ref: "#/components/parameters/ParentJob"
|
|
- $ref: "#/components/parameters/WorkerTag"
|
|
- $ref: "#/components/parameters/CacheTtl"
|
|
- $ref: "#/components/parameters/NewJobId"
|
|
- name: invisible_to_owner
|
|
description: make the run invisible to the the script owner (default false)
|
|
in: query
|
|
schema:
|
|
type: boolean
|
|
requestBody:
|
|
description: script args
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ScriptArgs"
|
|
|
|
responses:
|
|
"201":
|
|
description: job created
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
format: uuid
|
|
|
|
/w/{workspace}/jobs/run_wait_result/p/{path}:
|
|
post:
|
|
summary: run script by path
|
|
operationId: runWaitResultScriptByPath
|
|
tags:
|
|
- job
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/ScriptPath"
|
|
- $ref: "#/components/parameters/ParentJob"
|
|
- $ref: "#/components/parameters/WorkerTag"
|
|
- $ref: "#/components/parameters/CacheTtl"
|
|
- $ref: "#/components/parameters/NewJobId"
|
|
- $ref: "#/components/parameters/IncludeHeader"
|
|
- $ref: "#/components/parameters/QueueLimit"
|
|
- $ref: "#/components/parameters/SkipPreprocessor"
|
|
|
|
requestBody:
|
|
description: script args
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ScriptArgs"
|
|
|
|
responses:
|
|
"200":
|
|
description: job result
|
|
content:
|
|
application/json:
|
|
schema: {}
|
|
|
|
get:
|
|
summary: run script by path with get
|
|
operationId: runWaitResultScriptByPathGet
|
|
tags:
|
|
- job
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/ScriptPath"
|
|
- $ref: "#/components/parameters/ParentJob"
|
|
- $ref: "#/components/parameters/WorkerTag"
|
|
- $ref: "#/components/parameters/CacheTtl"
|
|
- $ref: "#/components/parameters/NewJobId"
|
|
- $ref: "#/components/parameters/IncludeHeader"
|
|
- $ref: "#/components/parameters/QueueLimit"
|
|
- $ref: "#/components/parameters/Payload"
|
|
- $ref: "#/components/parameters/SkipPreprocessor"
|
|
|
|
responses:
|
|
"200":
|
|
description: job result
|
|
content:
|
|
application/json:
|
|
schema: {}
|
|
|
|
/w/{workspace}/jobs/run_wait_result/f/{path}:
|
|
post:
|
|
summary: run flow by path and wait until completion
|
|
operationId: runWaitResultFlowByPath
|
|
tags:
|
|
- job
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/ScriptPath"
|
|
- $ref: "#/components/parameters/IncludeHeader"
|
|
- $ref: "#/components/parameters/QueueLimit"
|
|
- $ref: "#/components/parameters/NewJobId"
|
|
- $ref: "#/components/parameters/SkipPreprocessor"
|
|
- name: memory_id
|
|
description: memory ID for chat-enabled flows
|
|
in: query
|
|
schema:
|
|
type: string
|
|
format: uuid
|
|
|
|
requestBody:
|
|
description: script args
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ScriptArgs"
|
|
|
|
responses:
|
|
"200":
|
|
description: job result
|
|
content:
|
|
application/json:
|
|
schema: {}
|
|
|
|
/w/{workspace}/jobs/run_wait_result/fv/{version}:
|
|
post:
|
|
summary: run flow by version and wait until completion
|
|
operationId: runWaitResultFlowByVersion
|
|
tags:
|
|
- job
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- name: version
|
|
description: flow version ID
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: integer
|
|
format: int64
|
|
- $ref: "#/components/parameters/IncludeHeader"
|
|
- $ref: "#/components/parameters/QueueLimit"
|
|
- $ref: "#/components/parameters/NewJobId"
|
|
- $ref: "#/components/parameters/SkipPreprocessor"
|
|
- name: memory_id
|
|
description: memory ID for chat-enabled flows
|
|
in: query
|
|
schema:
|
|
type: string
|
|
format: uuid
|
|
|
|
requestBody:
|
|
description: script args
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ScriptArgs"
|
|
|
|
responses:
|
|
"200":
|
|
description: job result
|
|
content:
|
|
application/json:
|
|
schema: {}
|
|
|
|
get:
|
|
summary: run flow by version with GET and wait until completion
|
|
operationId: runWaitResultFlowByVersionGet
|
|
tags:
|
|
- job
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- name: version
|
|
description: flow version ID
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: integer
|
|
format: int64
|
|
- $ref: "#/components/parameters/IncludeHeader"
|
|
- $ref: "#/components/parameters/QueueLimit"
|
|
- $ref: "#/components/parameters/Payload"
|
|
- $ref: "#/components/parameters/NewJobId"
|
|
- $ref: "#/components/parameters/SkipPreprocessor"
|
|
- name: memory_id
|
|
description: memory ID for chat-enabled flows
|
|
in: query
|
|
schema:
|
|
type: string
|
|
format: uuid
|
|
|
|
responses:
|
|
"200":
|
|
description: job result
|
|
content:
|
|
application/json:
|
|
schema: {}
|
|
|
|
/w/{workspace}/jobs/run_and_stream/f/{path}:
|
|
post:
|
|
summary: run flow by path and stream updates via SSE
|
|
operationId: runAndStreamFlowByPath
|
|
tags:
|
|
- job
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/ScriptPath"
|
|
- $ref: "#/components/parameters/IncludeHeader"
|
|
- $ref: "#/components/parameters/QueueLimit"
|
|
- $ref: "#/components/parameters/NewJobId"
|
|
- $ref: "#/components/parameters/SkipPreprocessor"
|
|
- name: memory_id
|
|
description: memory ID for chat-enabled flows
|
|
in: query
|
|
schema:
|
|
type: string
|
|
format: uuid
|
|
- name: poll_delay_ms
|
|
description: delay between polling for job updates in milliseconds
|
|
in: query
|
|
schema:
|
|
type: integer
|
|
format: int64
|
|
|
|
requestBody:
|
|
description: flow args
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ScriptArgs"
|
|
|
|
responses:
|
|
"200":
|
|
description: server-sent events stream of job updates
|
|
content:
|
|
text/event-stream:
|
|
schema:
|
|
type: string
|
|
|
|
get:
|
|
summary: run flow by path with GET and stream updates via SSE
|
|
operationId: runAndStreamFlowByPathGet
|
|
tags:
|
|
- job
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/ScriptPath"
|
|
- $ref: "#/components/parameters/IncludeHeader"
|
|
- $ref: "#/components/parameters/QueueLimit"
|
|
- $ref: "#/components/parameters/Payload"
|
|
- $ref: "#/components/parameters/NewJobId"
|
|
- $ref: "#/components/parameters/SkipPreprocessor"
|
|
- name: memory_id
|
|
description: memory ID for chat-enabled flows
|
|
in: query
|
|
schema:
|
|
type: string
|
|
format: uuid
|
|
- name: poll_delay_ms
|
|
description: delay between polling for job updates in milliseconds
|
|
in: query
|
|
schema:
|
|
type: integer
|
|
format: int64
|
|
|
|
responses:
|
|
"200":
|
|
description: server-sent events stream of job updates
|
|
content:
|
|
text/event-stream:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/jobs/run_and_stream/fv/{version}:
|
|
post:
|
|
summary: run flow by version and stream updates via SSE
|
|
operationId: runAndStreamFlowByVersion
|
|
tags:
|
|
- job
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- name: version
|
|
description: flow version ID
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: integer
|
|
format: int64
|
|
- $ref: "#/components/parameters/IncludeHeader"
|
|
- $ref: "#/components/parameters/QueueLimit"
|
|
- $ref: "#/components/parameters/NewJobId"
|
|
- $ref: "#/components/parameters/SkipPreprocessor"
|
|
- name: memory_id
|
|
description: memory ID for chat-enabled flows
|
|
in: query
|
|
schema:
|
|
type: string
|
|
format: uuid
|
|
- name: poll_delay_ms
|
|
description: delay between polling for job updates in milliseconds
|
|
in: query
|
|
schema:
|
|
type: integer
|
|
format: int64
|
|
|
|
requestBody:
|
|
description: flow args
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ScriptArgs"
|
|
|
|
responses:
|
|
"200":
|
|
description: server-sent events stream of job updates
|
|
content:
|
|
text/event-stream:
|
|
schema:
|
|
type: string
|
|
|
|
get:
|
|
summary: run flow by version with GET and stream updates via SSE
|
|
operationId: runAndStreamFlowByVersionGet
|
|
tags:
|
|
- job
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- name: version
|
|
description: flow version ID
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: integer
|
|
format: int64
|
|
- $ref: "#/components/parameters/IncludeHeader"
|
|
- $ref: "#/components/parameters/QueueLimit"
|
|
- $ref: "#/components/parameters/Payload"
|
|
- $ref: "#/components/parameters/NewJobId"
|
|
- $ref: "#/components/parameters/SkipPreprocessor"
|
|
- name: memory_id
|
|
description: memory ID for chat-enabled flows
|
|
in: query
|
|
schema:
|
|
type: string
|
|
format: uuid
|
|
- name: poll_delay_ms
|
|
description: delay between polling for job updates in milliseconds
|
|
in: query
|
|
schema:
|
|
type: integer
|
|
format: int64
|
|
|
|
responses:
|
|
"200":
|
|
description: server-sent events stream of job updates
|
|
content:
|
|
text/event-stream:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/jobs/run_and_stream/p/{path}:
|
|
post:
|
|
summary: run script by path and stream updates via SSE
|
|
operationId: runAndStreamScriptByPath
|
|
tags:
|
|
- job
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/ScriptPath"
|
|
- $ref: "#/components/parameters/ParentJob"
|
|
- $ref: "#/components/parameters/WorkerTag"
|
|
- $ref: "#/components/parameters/CacheTtl"
|
|
- $ref: "#/components/parameters/NewJobId"
|
|
- $ref: "#/components/parameters/IncludeHeader"
|
|
- $ref: "#/components/parameters/QueueLimit"
|
|
- $ref: "#/components/parameters/SkipPreprocessor"
|
|
- name: poll_delay_ms
|
|
description: delay between polling for job updates in milliseconds
|
|
in: query
|
|
schema:
|
|
type: integer
|
|
format: int64
|
|
|
|
requestBody:
|
|
description: script args
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ScriptArgs"
|
|
|
|
responses:
|
|
"200":
|
|
description: server-sent events stream of job updates
|
|
content:
|
|
text/event-stream:
|
|
schema:
|
|
type: string
|
|
|
|
get:
|
|
summary: run script by path with GET and stream updates via SSE
|
|
operationId: runAndStreamScriptByPathGet
|
|
tags:
|
|
- job
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/ScriptPath"
|
|
- $ref: "#/components/parameters/ParentJob"
|
|
- $ref: "#/components/parameters/WorkerTag"
|
|
- $ref: "#/components/parameters/CacheTtl"
|
|
- $ref: "#/components/parameters/NewJobId"
|
|
- $ref: "#/components/parameters/IncludeHeader"
|
|
- $ref: "#/components/parameters/QueueLimit"
|
|
- $ref: "#/components/parameters/Payload"
|
|
- $ref: "#/components/parameters/SkipPreprocessor"
|
|
- name: poll_delay_ms
|
|
description: delay between polling for job updates in milliseconds
|
|
in: query
|
|
schema:
|
|
type: integer
|
|
format: int64
|
|
|
|
responses:
|
|
"200":
|
|
description: server-sent events stream of job updates
|
|
content:
|
|
text/event-stream:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/jobs/run_and_stream/h/{hash}:
|
|
post:
|
|
summary: run script by hash and stream updates via SSE
|
|
operationId: runAndStreamScriptByHash
|
|
tags:
|
|
- job
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- name: hash
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
- $ref: "#/components/parameters/ParentJob"
|
|
- $ref: "#/components/parameters/WorkerTag"
|
|
- $ref: "#/components/parameters/CacheTtl"
|
|
- $ref: "#/components/parameters/NewJobId"
|
|
- $ref: "#/components/parameters/IncludeHeader"
|
|
- $ref: "#/components/parameters/QueueLimit"
|
|
- $ref: "#/components/parameters/SkipPreprocessor"
|
|
- name: poll_delay_ms
|
|
description: delay between polling for job updates in milliseconds
|
|
in: query
|
|
schema:
|
|
type: integer
|
|
format: int64
|
|
|
|
requestBody:
|
|
description: script args
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ScriptArgs"
|
|
|
|
responses:
|
|
"200":
|
|
description: server-sent events stream of job updates
|
|
content:
|
|
text/event-stream:
|
|
schema:
|
|
type: string
|
|
|
|
get:
|
|
summary: run script by hash with GET and stream updates via SSE
|
|
operationId: runAndStreamScriptByHashGet
|
|
tags:
|
|
- job
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- name: hash
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
- $ref: "#/components/parameters/ParentJob"
|
|
- $ref: "#/components/parameters/WorkerTag"
|
|
- $ref: "#/components/parameters/CacheTtl"
|
|
- $ref: "#/components/parameters/NewJobId"
|
|
- $ref: "#/components/parameters/IncludeHeader"
|
|
- $ref: "#/components/parameters/QueueLimit"
|
|
- $ref: "#/components/parameters/Payload"
|
|
- $ref: "#/components/parameters/SkipPreprocessor"
|
|
- name: poll_delay_ms
|
|
description: delay between polling for job updates in milliseconds
|
|
in: query
|
|
schema:
|
|
type: integer
|
|
format: int64
|
|
|
|
responses:
|
|
"200":
|
|
description: server-sent events stream of job updates
|
|
content:
|
|
text/event-stream:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/jobs/result_by_id/{flow_job_id}/{node_id}:
|
|
get:
|
|
summary: get job result by id
|
|
operationId: resultById
|
|
tags:
|
|
- job
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- name: flow_job_id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
- name: node_id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
responses:
|
|
"200":
|
|
description: job result
|
|
content:
|
|
application/json:
|
|
schema: {}
|
|
|
|
/w/{workspace}/flows/list_paths:
|
|
get:
|
|
summary: list all flow paths
|
|
operationId: listFlowPaths
|
|
tags:
|
|
- flow
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
responses:
|
|
"200":
|
|
description: list of flow paths
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: array
|
|
items:
|
|
type: string
|
|
|
|
/w/{workspace}/flows/list_search:
|
|
get:
|
|
summary: list flows for search
|
|
operationId: listSearchFlow
|
|
tags:
|
|
- flow
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
responses:
|
|
"200":
|
|
description: flow list
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
type: object
|
|
properties:
|
|
path:
|
|
type: string
|
|
value: {}
|
|
required:
|
|
- path
|
|
- value
|
|
|
|
/w/{workspace}/flows/list:
|
|
get:
|
|
summary: list all flows
|
|
operationId: listFlows
|
|
x-mcp-tool: true
|
|
tags:
|
|
- flow
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Page"
|
|
- $ref: "#/components/parameters/PerPage"
|
|
- $ref: "#/components/parameters/OrderDesc"
|
|
- $ref: "#/components/parameters/CreatedBy"
|
|
- name: path_start
|
|
description: mask to filter matching starting path
|
|
in: query
|
|
schema:
|
|
type: string
|
|
- name: path_exact
|
|
description: mask to filter exact matching path
|
|
in: query
|
|
schema:
|
|
type: string
|
|
- name: show_archived
|
|
description: |
|
|
(default false)
|
|
show only the archived files.
|
|
when multiple archived hash share the same path, only the ones with the latest create_at
|
|
are displayed.
|
|
in: query
|
|
schema:
|
|
type: boolean
|
|
- name: starred_only
|
|
description: |
|
|
(default false)
|
|
show only the starred items
|
|
in: query
|
|
schema:
|
|
type: boolean
|
|
- name: include_draft_only
|
|
description: |
|
|
(default false)
|
|
include items that have no deployed version
|
|
in: query
|
|
schema:
|
|
type: boolean
|
|
- name: with_deployment_msg
|
|
description: |
|
|
(default false)
|
|
include deployment message
|
|
in: query
|
|
schema:
|
|
type: boolean
|
|
- name: without_description
|
|
in: query
|
|
description: |
|
|
(default false)
|
|
If true, the description field will be omitted from the response.
|
|
schema:
|
|
type: boolean
|
|
- name: dedicated_worker
|
|
in: query
|
|
description: |
|
|
(default regardless)
|
|
If true, show only flows with dedicated_worker enabled.
|
|
If false, show only flows with dedicated_worker disabled.
|
|
schema:
|
|
type: boolean
|
|
- name: label
|
|
in: query
|
|
required: false
|
|
schema:
|
|
type: string
|
|
description: Filter by label
|
|
responses:
|
|
"200":
|
|
description: All flow
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
allOf:
|
|
- $ref: "#/components/schemas/Flow"
|
|
- type: object
|
|
properties:
|
|
has_draft:
|
|
type: boolean
|
|
draft_only:
|
|
type: boolean
|
|
|
|
/w/{workspace}/flows/history/p/{path}:
|
|
get:
|
|
summary: get flow history by path
|
|
operationId: getFlowHistory
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/ScriptPath"
|
|
tags:
|
|
- flow
|
|
responses:
|
|
"200":
|
|
description: Flow history
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/FlowVersion"
|
|
|
|
/w/{workspace}/flows/get_latest_version/{path}:
|
|
get:
|
|
summary: get flow's latest version
|
|
operationId: getFlowLatestVersion
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/ScriptPath"
|
|
tags:
|
|
- flow
|
|
responses:
|
|
"200":
|
|
description: Flow version
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/FlowVersion"
|
|
|
|
/w/{workspace}/flows/list_paths_from_workspace_runnable/{runnable_kind}/{path}:
|
|
get:
|
|
summary: list flow paths from workspace runnable
|
|
operationId: listFlowPathsFromWorkspaceRunnable
|
|
tags:
|
|
- flow
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/RunnableKind"
|
|
- $ref: "#/components/parameters/ScriptPath"
|
|
- name: match_path_start
|
|
in: query
|
|
schema:
|
|
type: boolean
|
|
responses:
|
|
"200":
|
|
description: list of flow paths
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
type: string
|
|
|
|
/w/{workspace}/flows/get/v/{version}:
|
|
get:
|
|
summary: get flow version
|
|
operationId: getFlowVersion
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- name: version
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: number
|
|
tags:
|
|
- flow
|
|
responses:
|
|
"200":
|
|
description: flow details
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/Flow"
|
|
|
|
/w/{workspace}/flows/history_update/v/{version}:
|
|
post:
|
|
summary: update flow history
|
|
operationId: updateFlowHistory
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- name: version
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: number
|
|
requestBody:
|
|
description: Flow deployment message
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
deployment_msg:
|
|
type: string
|
|
required:
|
|
- deployment_msg
|
|
tags:
|
|
- flow
|
|
responses:
|
|
"200":
|
|
description: success
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/flows/get/{path}:
|
|
get:
|
|
summary: get flow by path
|
|
operationId: getFlowByPath
|
|
x-mcp-tool: true
|
|
tags:
|
|
- flow
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/ScriptPath"
|
|
- name: with_starred_info
|
|
in: query
|
|
schema:
|
|
type: boolean
|
|
responses:
|
|
"200":
|
|
description: flow details
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/Flow"
|
|
|
|
/w/{workspace}/flows/deployment_status/p/{path}:
|
|
get:
|
|
summary: get flow deployment status
|
|
operationId: getFlowDeploymentStatus
|
|
tags:
|
|
- flow
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/ScriptPath"
|
|
responses:
|
|
"200":
|
|
description: flow status
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
lock_error_logs:
|
|
type: string
|
|
job_id:
|
|
type: string
|
|
format: uuid
|
|
|
|
/w/{workspace}/flows/get_triggers_count/{path}:
|
|
get:
|
|
summary: get triggers count of flow
|
|
operationId: getTriggersCountOfFlow
|
|
tags:
|
|
- flow
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/ScriptPath"
|
|
responses:
|
|
"200":
|
|
description: triggers count
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/TriggersCount"
|
|
|
|
/w/{workspace}/flows/list_tokens/{path}:
|
|
get:
|
|
summary: get tokens with flow scope
|
|
operationId: listTokensOfFlow
|
|
tags:
|
|
- flow
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/ScriptPath"
|
|
responses:
|
|
"200":
|
|
description: tokens list
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/TruncatedToken"
|
|
|
|
/w/{workspace}/flows/toggle_workspace_error_handler/{path}:
|
|
post:
|
|
summary: Toggle ON and OFF the workspace error handler for a given flow
|
|
operationId: toggleWorkspaceErrorHandlerForFlow
|
|
tags:
|
|
- flow
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/ScriptPath"
|
|
requestBody:
|
|
description: Workspace error handler enabled
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
muted:
|
|
type: boolean
|
|
responses:
|
|
"200":
|
|
description: error handler toggled
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/flows/get/draft/{path}:
|
|
get:
|
|
summary: get flow by path with draft
|
|
operationId: getFlowByPathWithDraft
|
|
tags:
|
|
- flow
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/ScriptPath"
|
|
responses:
|
|
"200":
|
|
description: flow details with draft
|
|
content:
|
|
application/json:
|
|
schema:
|
|
allOf:
|
|
- $ref: "#/components/schemas/Flow"
|
|
- type: object
|
|
properties:
|
|
draft:
|
|
$ref: "#/components/schemas/Flow"
|
|
|
|
/w/{workspace}/flows/exists/{path}:
|
|
get:
|
|
summary: exists flow by path
|
|
operationId: existsFlowByPath
|
|
tags:
|
|
- flow
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/ScriptPath"
|
|
responses:
|
|
"200":
|
|
description: flow details
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: boolean
|
|
|
|
/w/{workspace}/flows/create:
|
|
post:
|
|
summary: create flow
|
|
operationId: createFlow
|
|
x-mcp-tool: true
|
|
x-mcp-tool-include-fields:
|
|
- path
|
|
- summary
|
|
- description
|
|
- value
|
|
- schema
|
|
- tag
|
|
- deployment_message
|
|
x-mcp-tool-opaque-fields:
|
|
- value
|
|
- schema
|
|
tags:
|
|
- flow
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
requestBody:
|
|
description: Partially filled flow
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
allOf:
|
|
- $ref: "#/components/schemas/OpenFlowWPath"
|
|
- type: object
|
|
properties:
|
|
draft_only:
|
|
type: boolean
|
|
deployment_message:
|
|
type: string
|
|
responses:
|
|
"201":
|
|
description: flow created
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/flows/update/{path}:
|
|
post:
|
|
summary: update flow
|
|
operationId: updateFlow
|
|
x-mcp-tool: true
|
|
x-mcp-tool-include-fields:
|
|
- path
|
|
- summary
|
|
- description
|
|
- value
|
|
- schema
|
|
- tag
|
|
- deployment_message
|
|
x-mcp-tool-opaque-fields:
|
|
- value
|
|
- schema
|
|
tags:
|
|
- flow
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/ScriptPath"
|
|
requestBody:
|
|
description: Partially filled flow
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
allOf:
|
|
- $ref: "#/components/schemas/OpenFlowWPath"
|
|
- type: object
|
|
properties:
|
|
deployment_message:
|
|
type: string
|
|
|
|
responses:
|
|
"200":
|
|
description: flow updated
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/flows/archive/{path}:
|
|
post:
|
|
summary: archive flow by path
|
|
operationId: archiveFlowByPath
|
|
tags:
|
|
- flow
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/ScriptPath"
|
|
requestBody:
|
|
description: archiveFlow
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
archived:
|
|
type: boolean
|
|
responses:
|
|
"200":
|
|
description: flow archived
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/flows/delete/{path}:
|
|
delete:
|
|
summary: delete flow by path
|
|
operationId: deleteFlowByPath
|
|
x-mcp-tool: true
|
|
tags:
|
|
- flow
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/ScriptPath"
|
|
- name: keep_captures
|
|
description: keep captures
|
|
in: query
|
|
schema:
|
|
type: boolean
|
|
responses:
|
|
"200":
|
|
description: flow delete
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/flow_conversations/list:
|
|
get:
|
|
summary: list flow conversations
|
|
operationId: listFlowConversations
|
|
tags:
|
|
- flow_conversation
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Page"
|
|
- $ref: "#/components/parameters/PerPage"
|
|
- name: flow_path
|
|
description: filter conversations by flow path
|
|
in: query
|
|
schema:
|
|
type: string
|
|
responses:
|
|
"200":
|
|
description: flow conversations list
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/FlowConversation"
|
|
|
|
/w/{workspace}/flow_conversations/delete/{conversation_id}:
|
|
delete:
|
|
summary: delete flow conversation
|
|
operationId: deleteFlowConversation
|
|
tags:
|
|
- flow_conversation
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- name: conversation_id
|
|
description: conversation id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
format: uuid
|
|
responses:
|
|
"200":
|
|
description: flow conversation deleted
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/flow_conversations/{conversation_id}/messages:
|
|
get:
|
|
summary: list conversation messages
|
|
operationId: listConversationMessages
|
|
tags:
|
|
- flow_conversation
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Page"
|
|
- $ref: "#/components/parameters/PerPage"
|
|
- name: conversation_id
|
|
description: conversation id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
format: uuid
|
|
- name: after_id
|
|
description: id to fetch only the messages after that id
|
|
in: query
|
|
required: false
|
|
schema:
|
|
type: string
|
|
format: uuid
|
|
responses:
|
|
"200":
|
|
description: conversation messages
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/FlowConversationMessage"
|
|
|
|
/w/{workspace}/path_autocomplete/list_paths:
|
|
get:
|
|
summary: list all paths in a workspace for client-side autocomplete
|
|
description: |
|
|
Returns the flat list of all item paths visible to the caller across
|
|
scripts, flows, apps, raw apps, variables, and resources. Intended to
|
|
feed an entirely client-side path autocomplete UI: the frontend fetches
|
|
once (server caches per workspace for 60s) and performs all prefix/segment
|
|
computation locally. Capped at 20,000 paths (5,000 per table).
|
|
operationId: listPathAutocompletePaths
|
|
tags:
|
|
- path_autocomplete
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
responses:
|
|
"200":
|
|
description: deduplicated path list, sorted lexicographically
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
paths:
|
|
type: array
|
|
items:
|
|
type: string
|
|
required:
|
|
- paths
|
|
|
|
/w/{workspace}/raw_apps/list:
|
|
get:
|
|
summary: list all raw apps
|
|
operationId: listRawApps
|
|
tags:
|
|
- raw_app
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Page"
|
|
- $ref: "#/components/parameters/PerPage"
|
|
- $ref: "#/components/parameters/OrderDesc"
|
|
- $ref: "#/components/parameters/CreatedBy"
|
|
- name: path_start
|
|
description: mask to filter matching starting path
|
|
in: query
|
|
schema:
|
|
type: string
|
|
- name: path_exact
|
|
description: mask to filter exact matching path
|
|
in: query
|
|
schema:
|
|
type: string
|
|
- name: starred_only
|
|
description: |
|
|
(default false)
|
|
show only the starred items
|
|
in: query
|
|
schema:
|
|
type: boolean
|
|
- name: label
|
|
in: query
|
|
required: false
|
|
schema:
|
|
type: string
|
|
description: Filter by label
|
|
responses:
|
|
"200":
|
|
description: All raw apps
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/ListableRawApp"
|
|
|
|
/w/{workspace}/apps/get_data/v/{secretWithExtension}:
|
|
get:
|
|
summary: get raw app data by
|
|
operationId: getRawAppData
|
|
tags:
|
|
- app
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- name: secretWithExtension
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
responses:
|
|
"200":
|
|
description: app details
|
|
content:
|
|
text/javascript:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/apps/list_search:
|
|
get:
|
|
summary: list apps for search
|
|
operationId: listSearchApp
|
|
tags:
|
|
- app
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
responses:
|
|
"200":
|
|
description: app list
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
type: object
|
|
properties:
|
|
path:
|
|
type: string
|
|
value: {}
|
|
required:
|
|
- path
|
|
- value
|
|
|
|
/w/{workspace}/apps/list:
|
|
get:
|
|
summary: list all apps
|
|
operationId: listApps
|
|
tags:
|
|
- app
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Page"
|
|
- $ref: "#/components/parameters/PerPage"
|
|
- $ref: "#/components/parameters/OrderDesc"
|
|
- $ref: "#/components/parameters/CreatedBy"
|
|
- name: path_start
|
|
description: mask to filter matching starting path
|
|
in: query
|
|
schema:
|
|
type: string
|
|
- name: path_exact
|
|
description: mask to filter exact matching path
|
|
in: query
|
|
schema:
|
|
type: string
|
|
- name: starred_only
|
|
description: |
|
|
(default false)
|
|
show only the starred items
|
|
in: query
|
|
schema:
|
|
type: boolean
|
|
- name: include_draft_only
|
|
description: |
|
|
(default false)
|
|
include items that have no deployed version
|
|
in: query
|
|
schema:
|
|
type: boolean
|
|
- name: with_deployment_msg
|
|
description: |
|
|
(default false)
|
|
include deployment message
|
|
in: query
|
|
schema:
|
|
type: boolean
|
|
- name: label
|
|
in: query
|
|
required: false
|
|
schema:
|
|
type: string
|
|
description: Filter by label
|
|
responses:
|
|
"200":
|
|
description: All apps
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/ListableApp"
|
|
|
|
/w/{workspace}/apps/create:
|
|
post:
|
|
summary: create app
|
|
operationId: createApp
|
|
x-mcp-tool: true
|
|
x-mcp-tool-include-fields:
|
|
- path
|
|
- value
|
|
- summary
|
|
- policy
|
|
- deployment_message
|
|
x-mcp-tool-opaque-fields:
|
|
- value
|
|
- policy
|
|
tags:
|
|
- app
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
requestBody:
|
|
description: new app
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
path:
|
|
type: string
|
|
value: {}
|
|
summary:
|
|
type: string
|
|
policy:
|
|
$ref: "#/components/schemas/Policy"
|
|
draft_only:
|
|
type: boolean
|
|
deployment_message:
|
|
type: string
|
|
custom_path:
|
|
type: string
|
|
preserve_on_behalf_of:
|
|
type: boolean
|
|
description: "When true and the caller is a member of the 'wm_deployers' group, preserves the original on_behalf_of value in the policy instead of overwriting it."
|
|
labels:
|
|
type: array
|
|
items:
|
|
type: string
|
|
required:
|
|
- path
|
|
- value
|
|
- summary
|
|
- policy
|
|
responses:
|
|
"201":
|
|
description: app created
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/apps/create_raw:
|
|
post:
|
|
summary: create app raw
|
|
operationId: createAppRaw
|
|
tags:
|
|
- app
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
requestBody:
|
|
description: new app
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
app:
|
|
type: object
|
|
properties:
|
|
path:
|
|
type: string
|
|
value: {}
|
|
summary:
|
|
type: string
|
|
policy:
|
|
$ref: "#/components/schemas/Policy"
|
|
draft_only:
|
|
type: boolean
|
|
deployment_message:
|
|
type: string
|
|
custom_path:
|
|
type: string
|
|
preserve_on_behalf_of:
|
|
type: boolean
|
|
description: "When true and the caller is a member of the 'wm_deployers' group, preserves the original on_behalf_of value in the policy instead of overwriting it."
|
|
labels:
|
|
type: array
|
|
items:
|
|
type: string
|
|
required:
|
|
- path
|
|
- value
|
|
- summary
|
|
- policy
|
|
js:
|
|
type: string
|
|
css:
|
|
type: string
|
|
responses:
|
|
"201":
|
|
description: app created
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/apps/exists/{path}:
|
|
get:
|
|
summary: does an app exisst at path
|
|
operationId: existsApp
|
|
tags:
|
|
- app
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Path"
|
|
responses:
|
|
"200":
|
|
description: app exists
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: boolean
|
|
|
|
/w/{workspace}/apps/get/p/{path}:
|
|
get:
|
|
summary: get app by path
|
|
operationId: getAppByPath
|
|
tags:
|
|
- app
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/ScriptPath"
|
|
- name: with_starred_info
|
|
in: query
|
|
schema:
|
|
type: boolean
|
|
responses:
|
|
"200":
|
|
description: app details
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/AppWithLastVersion"
|
|
|
|
/w/{workspace}/apps/get/lite/{path}:
|
|
get:
|
|
summary: get app lite by path
|
|
operationId: getAppLiteByPath
|
|
tags:
|
|
- app
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/ScriptPath"
|
|
responses:
|
|
"200":
|
|
description: app lite details
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/AppWithLastVersion"
|
|
|
|
/w/{workspace}/apps/get/draft/{path}:
|
|
get:
|
|
summary: get app by path with draft
|
|
operationId: getAppByPathWithDraft
|
|
tags:
|
|
- app
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/ScriptPath"
|
|
responses:
|
|
"200":
|
|
description: app details with draft
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/AppWithLastVersionWDraft"
|
|
|
|
/w/{workspace}/apps/history/p/{path}:
|
|
get:
|
|
summary: get app history by path
|
|
operationId: getAppHistoryByPath
|
|
tags:
|
|
- app
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/ScriptPath"
|
|
responses:
|
|
"200":
|
|
description: app history
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/AppHistory"
|
|
|
|
/w/{workspace}/apps/get_latest_version/{path}:
|
|
get:
|
|
summary: get apps's latest version
|
|
operationId: getAppLatestVersion
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/ScriptPath"
|
|
tags:
|
|
- app
|
|
responses:
|
|
"200":
|
|
description: App version
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/AppHistory"
|
|
/w/{workspace}/apps/list_paths_from_workspace_runnable/{runnable_kind}/{path}:
|
|
get:
|
|
summary: list app paths from workspace runnable
|
|
operationId: listAppPathsFromWorkspaceRunnable
|
|
tags:
|
|
- app
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/RunnableKind"
|
|
- $ref: "#/components/parameters/ScriptPath"
|
|
responses:
|
|
"200":
|
|
description: list of app paths
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
type: string
|
|
|
|
/w/{workspace}/apps/history_update/a/{id}/v/{version}:
|
|
post:
|
|
summary: update app history
|
|
operationId: updateAppHistory
|
|
tags:
|
|
- app
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/PathId"
|
|
- $ref: "#/components/parameters/PathVersion"
|
|
requestBody:
|
|
description: App deployment message
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
deployment_msg:
|
|
type: string
|
|
responses:
|
|
"200":
|
|
description: success
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/apps_u/public_app/{path}:
|
|
get:
|
|
summary: get public app by secret
|
|
operationId: getPublicAppBySecret
|
|
tags:
|
|
- app
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Path"
|
|
responses:
|
|
"200":
|
|
description: app details
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/AppWithLastVersion"
|
|
|
|
/w/{workspace}/apps_u/public_resource/{path}:
|
|
get:
|
|
summary: get public resource
|
|
operationId: get public resource
|
|
tags:
|
|
- app
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Path"
|
|
responses:
|
|
"200":
|
|
description: resource value
|
|
content:
|
|
application/json:
|
|
schema: {}
|
|
|
|
/w/{workspace}/apps/secret_of/{path}:
|
|
get:
|
|
summary: get public secret of app
|
|
operationId: getPublicSecretOfApp
|
|
tags:
|
|
- app
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Path"
|
|
responses:
|
|
"200":
|
|
description: app secret
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/apps/secret_of_latest_version/{path}:
|
|
get:
|
|
summary: get public secret of latest version of an app bundle
|
|
operationId: getPublicSecretOfLatestVersionOfApp
|
|
tags:
|
|
- app
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Path"
|
|
responses:
|
|
"200":
|
|
description: app secret
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/apps/get/v/{id}:
|
|
get:
|
|
summary: get app by version
|
|
operationId: getAppByVersion
|
|
tags:
|
|
- app
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/PathId"
|
|
responses:
|
|
"200":
|
|
description: app details
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/AppWithLastVersion"
|
|
|
|
/w/{workspace}/apps/delete/{path}:
|
|
delete:
|
|
summary: delete app
|
|
operationId: deleteApp
|
|
tags:
|
|
- app
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Path"
|
|
responses:
|
|
"200":
|
|
description: app deleted
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/apps/update/{path}:
|
|
post:
|
|
summary: update app
|
|
operationId: updateApp
|
|
x-mcp-tool: true
|
|
x-mcp-tool-include-fields:
|
|
- path
|
|
- value
|
|
- summary
|
|
- policy
|
|
- deployment_message
|
|
x-mcp-tool-opaque-fields:
|
|
- value
|
|
- policy
|
|
tags:
|
|
- app
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/ScriptPath"
|
|
requestBody:
|
|
description: update app
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
path:
|
|
type: string
|
|
summary:
|
|
type: string
|
|
value: {}
|
|
policy:
|
|
$ref: "#/components/schemas/Policy"
|
|
deployment_message:
|
|
type: string
|
|
custom_path:
|
|
type: string
|
|
preserve_on_behalf_of:
|
|
type: boolean
|
|
description: "When true and the caller is a member of the 'wm_deployers' group, preserves the original on_behalf_of value in the policy instead of overwriting it."
|
|
labels:
|
|
type: array
|
|
items:
|
|
type: string
|
|
responses:
|
|
"200":
|
|
description: app updated
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/apps/update_raw/{path}:
|
|
post:
|
|
summary: update app
|
|
operationId: updateAppRaw
|
|
tags:
|
|
- app
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/ScriptPath"
|
|
requestBody:
|
|
description: update app
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
app:
|
|
type: object
|
|
properties:
|
|
path:
|
|
type: string
|
|
summary:
|
|
type: string
|
|
value: {}
|
|
policy:
|
|
$ref: "#/components/schemas/Policy"
|
|
deployment_message:
|
|
type: string
|
|
custom_path:
|
|
type: string
|
|
preserve_on_behalf_of:
|
|
type: boolean
|
|
description: "When true and the caller is a member of the 'wm_deployers' group, preserves the original on_behalf_of value in the policy instead of overwriting it."
|
|
labels:
|
|
type: array
|
|
items:
|
|
type: string
|
|
js:
|
|
type: string
|
|
css:
|
|
type: string
|
|
responses:
|
|
"200":
|
|
description: app updated
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/apps/custom_path_exists/{custom_path}:
|
|
get:
|
|
summary: check if custom path exists
|
|
operationId: customPathExists
|
|
tags:
|
|
- app
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/CustomPath"
|
|
responses:
|
|
"200":
|
|
description: custom path exists
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: boolean
|
|
|
|
/w/{workspace}/apps/sign_s3_objects:
|
|
post:
|
|
summary: sign s3 objects, to be used by anonymous users in public apps
|
|
operationId: signS3Objects
|
|
tags:
|
|
- app
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
requestBody:
|
|
description: s3 objects to sign
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
s3_objects:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/S3Object"
|
|
required:
|
|
- s3_objects
|
|
responses:
|
|
"200":
|
|
description: signed s3 objects
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/S3Object"
|
|
|
|
/w/{workspace}/apps_u/execute_component/{path}:
|
|
post:
|
|
summary: executeComponent
|
|
operationId: executeComponent
|
|
tags:
|
|
- app
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/ScriptPath"
|
|
requestBody:
|
|
description: update app
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
component:
|
|
type: string
|
|
#script: script/<path>
|
|
#flow: flow/<path>
|
|
path:
|
|
type: string
|
|
version:
|
|
type: integer
|
|
args: {}
|
|
raw_code:
|
|
type: object
|
|
properties:
|
|
content:
|
|
type: string
|
|
language:
|
|
type: string
|
|
path:
|
|
type: string
|
|
lock:
|
|
type: string
|
|
cache_ttl:
|
|
type: integer
|
|
required:
|
|
- content
|
|
- language
|
|
id:
|
|
type: integer
|
|
force_viewer_static_fields:
|
|
type: object
|
|
force_viewer_one_of_fields:
|
|
type: object
|
|
force_viewer_allow_user_resources:
|
|
type: array
|
|
items:
|
|
type: string
|
|
run_query_params:
|
|
type: object
|
|
description: Runnable query parameters
|
|
required:
|
|
- args
|
|
- component
|
|
|
|
responses:
|
|
"200":
|
|
description: job uuid
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/apps_u/upload_s3_file/{path}:
|
|
post:
|
|
summary: upload s3 file from app
|
|
operationId: uploadS3FileFromApp
|
|
tags:
|
|
- app
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Path"
|
|
- name: file_key
|
|
in: query
|
|
required: false
|
|
schema:
|
|
type: string
|
|
- name: file_extension
|
|
in: query
|
|
required: false
|
|
schema:
|
|
type: string
|
|
- name: s3_resource_path
|
|
in: query
|
|
required: false
|
|
schema:
|
|
type: string
|
|
- name: resource_type
|
|
in: query
|
|
required: false
|
|
schema:
|
|
type: string
|
|
- name: storage
|
|
in: query
|
|
schema:
|
|
type: string
|
|
- name: content_type
|
|
in: query
|
|
schema:
|
|
type: string
|
|
- name: content_disposition
|
|
in: query
|
|
schema:
|
|
type: string
|
|
requestBody:
|
|
description: File content
|
|
required: true
|
|
content:
|
|
application/octet-stream:
|
|
schema:
|
|
type: string
|
|
format: binary
|
|
responses:
|
|
"200":
|
|
description: file uploaded
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
file_key:
|
|
type: string
|
|
delete_token:
|
|
type: string
|
|
required:
|
|
- file_key
|
|
- delete_token
|
|
|
|
/w/{workspace}/apps_u/delete_s3_file:
|
|
delete:
|
|
summary: delete s3 file from app
|
|
operationId: deleteS3FileFromApp
|
|
tags:
|
|
- app
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- name: delete_token
|
|
in: query
|
|
required: true
|
|
schema:
|
|
type: string
|
|
responses:
|
|
"200":
|
|
description: file deleted
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/jobs/run/f/{path}:
|
|
post:
|
|
summary: run flow by path
|
|
operationId: runFlowByPath
|
|
x-mcp-tool: true
|
|
x-mcp-instructions: "You should first use getFlowByPath to retrieve the flow's schema and understand what arguments are expected."
|
|
x-mcp-tool-include-query-params: []
|
|
tags:
|
|
- job
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/ScriptPath"
|
|
- name: scheduled_for
|
|
description: when to schedule this job (leave empty for immediate run)
|
|
in: query
|
|
schema:
|
|
type: string
|
|
format: date-time
|
|
- name: scheduled_in_secs
|
|
description: schedule the script to execute in the number of seconds starting now
|
|
in: query
|
|
schema:
|
|
type: integer
|
|
- $ref: "#/components/parameters/SkipPreprocessor"
|
|
- $ref: "#/components/parameters/ParentJob"
|
|
- $ref: "#/components/parameters/WorkerTag"
|
|
- $ref: "#/components/parameters/NewJobId"
|
|
- $ref: "#/components/parameters/IncludeHeader"
|
|
- name: invisible_to_owner
|
|
description: make the run invisible to the the flow owner (default false)
|
|
in: query
|
|
schema:
|
|
type: boolean
|
|
- name: memory_id
|
|
description: memory ID for chat-enabled flows
|
|
in: query
|
|
schema:
|
|
type: string
|
|
format: uuid
|
|
requestBody:
|
|
description: flow args
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ScriptArgs"
|
|
responses:
|
|
"201":
|
|
description: job created
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
format: uuid
|
|
|
|
/w/{workspace}/jobs/run/fv/{version}:
|
|
post:
|
|
summary: run flow by version
|
|
operationId: runFlowByVersion
|
|
tags:
|
|
- job
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- name: version
|
|
description: flow version ID
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: integer
|
|
format: int64
|
|
- name: scheduled_for
|
|
description: when to schedule this job (leave empty for immediate run)
|
|
in: query
|
|
schema:
|
|
type: string
|
|
format: date-time
|
|
- name: scheduled_in_secs
|
|
description: schedule the script to execute in the number of seconds starting now
|
|
in: query
|
|
schema:
|
|
type: integer
|
|
- $ref: "#/components/parameters/SkipPreprocessor"
|
|
- $ref: "#/components/parameters/ParentJob"
|
|
- $ref: "#/components/parameters/WorkerTag"
|
|
- $ref: "#/components/parameters/NewJobId"
|
|
- $ref: "#/components/parameters/IncludeHeader"
|
|
- name: invisible_to_owner
|
|
description: make the run invisible to the the flow owner (default false)
|
|
in: query
|
|
schema:
|
|
type: boolean
|
|
- name: memory_id
|
|
description: memory ID for chat-enabled flows
|
|
in: query
|
|
schema:
|
|
type: string
|
|
format: uuid
|
|
requestBody:
|
|
description: flow args
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ScriptArgs"
|
|
responses:
|
|
"201":
|
|
description: job created
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
format: uuid
|
|
|
|
/w/{workspace}/jobs/run/batch_rerun_jobs:
|
|
post:
|
|
summary: re-run multiple jobs
|
|
operationId: batchReRunJobs
|
|
tags:
|
|
- job
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
requestBody:
|
|
description: list of job ids to re run and arg tranforms
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
required: [job_ids, script_options_by_path, flow_options_by_path]
|
|
properties:
|
|
job_ids:
|
|
type: array
|
|
items:
|
|
type: string
|
|
script_options_by_path:
|
|
type: object
|
|
additionalProperties:
|
|
type: object
|
|
properties:
|
|
input_transforms:
|
|
type: object
|
|
additionalProperties:
|
|
$ref: "#/components/schemas/InputTransform"
|
|
use_latest_version:
|
|
type: boolean
|
|
flow_options_by_path:
|
|
type: object
|
|
additionalProperties:
|
|
type: object
|
|
properties:
|
|
input_transforms:
|
|
type: object
|
|
additionalProperties:
|
|
$ref: "#/components/schemas/InputTransform"
|
|
use_latest_version:
|
|
type: boolean
|
|
responses:
|
|
"201":
|
|
description: stream of created job uuids separated by \n. Lines may start with 'Error:'
|
|
content:
|
|
text/event-stream:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/jobs/restart/f/{id}:
|
|
post:
|
|
summary: restart a completed flow at a given step
|
|
operationId: restartFlowAtStep
|
|
tags:
|
|
- job
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/JobId"
|
|
- name: scheduled_for
|
|
description: when to schedule this job (leave empty for immediate run)
|
|
in: query
|
|
schema:
|
|
type: string
|
|
format: date-time
|
|
- name: scheduled_in_secs
|
|
description: schedule the script to execute in the number of seconds starting now
|
|
in: query
|
|
schema:
|
|
type: integer
|
|
- $ref: "#/components/parameters/ParentJob"
|
|
- $ref: "#/components/parameters/WorkerTag"
|
|
- $ref: "#/components/parameters/NewJobId"
|
|
- $ref: "#/components/parameters/IncludeHeader"
|
|
- name: invisible_to_owner
|
|
description: make the run invisible to the the flow owner (default false)
|
|
in: query
|
|
schema:
|
|
type: boolean
|
|
|
|
requestBody:
|
|
description: restart flow parameters
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- step_id
|
|
properties:
|
|
step_id:
|
|
type: string
|
|
description: step id to restart the flow from
|
|
branch_or_iteration_n:
|
|
type: integer
|
|
description: for branchall or loop, the iteration at which the flow should restart (optional)
|
|
flow_version:
|
|
type: integer
|
|
description: specific flow version to use for restart (optional, uses current version if not specified)
|
|
|
|
responses:
|
|
"201":
|
|
description: job created
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
format: uuid
|
|
|
|
/w/{workspace}/jobs/run/h/{hash}:
|
|
post:
|
|
summary: run script by hash
|
|
operationId: runScriptByHash
|
|
tags:
|
|
- job
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/ScriptHash"
|
|
- name: scheduled_for
|
|
description: when to schedule this job (leave empty for immediate run)
|
|
in: query
|
|
schema:
|
|
type: string
|
|
format: date-time
|
|
- name: scheduled_in_secs
|
|
description: schedule the script to execute in the number of seconds starting now
|
|
in: query
|
|
schema:
|
|
type: integer
|
|
- $ref: "#/components/parameters/SkipPreprocessor"
|
|
- $ref: "#/components/parameters/ParentJob"
|
|
- $ref: "#/components/parameters/WorkerTag"
|
|
- $ref: "#/components/parameters/CacheTtl"
|
|
- $ref: "#/components/parameters/NewJobId"
|
|
- $ref: "#/components/parameters/IncludeHeader"
|
|
- name: invisible_to_owner
|
|
description: make the run invisible to the the script owner (default false)
|
|
in: query
|
|
schema:
|
|
type: boolean
|
|
requestBody:
|
|
description: Partially filled args
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
|
|
responses:
|
|
"201":
|
|
description: job created
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
format: uuid
|
|
|
|
/w/{workspace}/jobs/run/preview:
|
|
post:
|
|
summary: run script preview
|
|
operationId: runScriptPreview
|
|
tags:
|
|
- job
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/IncludeHeader"
|
|
- name: invisible_to_owner
|
|
description: make the run invisible to the the script owner (default false)
|
|
in: query
|
|
schema:
|
|
type: boolean
|
|
- $ref: "#/components/parameters/NewJobId"
|
|
|
|
requestBody:
|
|
description: preview
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/Preview"
|
|
|
|
responses:
|
|
"201":
|
|
description: job created
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
format: uuid
|
|
|
|
/w/{workspace}/jobs/run_inline/preview:
|
|
post:
|
|
summary: run script preview without starting a new job
|
|
operationId: runScriptPreviewInline
|
|
tags:
|
|
- job
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
requestBody:
|
|
description: preview
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/PreviewInline"
|
|
|
|
responses:
|
|
"200":
|
|
description: script result
|
|
content:
|
|
application/json:
|
|
schema: {}
|
|
|
|
/w/{workspace}/jobs/run_inline/p/{path}:
|
|
post:
|
|
summary: run script by path without starting a new job
|
|
operationId: runScriptByPathInline
|
|
tags:
|
|
- job
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/ScriptPath"
|
|
requestBody:
|
|
description: script args
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/InlineScriptArgs"
|
|
|
|
responses:
|
|
"200":
|
|
description: script result
|
|
content:
|
|
application/json:
|
|
schema: {}
|
|
|
|
/w/{workspace}/jobs/run_inline/h/{hash}:
|
|
post:
|
|
summary: run script by hash without starting a new job
|
|
operationId: runScriptByHashInline
|
|
tags:
|
|
- job
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/ScriptHash"
|
|
requestBody:
|
|
description: script args
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/InlineScriptArgs"
|
|
|
|
responses:
|
|
"200":
|
|
description: script result
|
|
content:
|
|
application/json:
|
|
schema: {}
|
|
|
|
/w/{workspace}/jobs/run_wait_result/preview:
|
|
post:
|
|
summary: run script preview and wait for result
|
|
operationId: runScriptPreviewAndWaitResult
|
|
x-mcp-tool: true
|
|
x-mcp-instructions: Allows testing a script before deploying it. For typescript code, the language to send is either bun or deno. By default, send bun if no deno specific code is detected.
|
|
x-mcp-required-fields:
|
|
- content
|
|
- language
|
|
- args
|
|
tags:
|
|
- job
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
|
|
requestBody:
|
|
description: preview
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/Preview"
|
|
|
|
responses:
|
|
"200":
|
|
description: job result
|
|
content:
|
|
application/json:
|
|
schema: {}
|
|
|
|
/w/{workspace}/jobs/workflow_as_code/{job_id}/{entrypoint}:
|
|
post:
|
|
summary: run code-workflow task
|
|
operationId: runCodeWorkflowTask
|
|
tags:
|
|
- job
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
|
|
- name: job_id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
- name: entrypoint
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
|
|
requestBody:
|
|
description: preview
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/WorkflowTask"
|
|
|
|
responses:
|
|
"201":
|
|
description: job created
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
format: uuid
|
|
|
|
/w/{workspace}/jobs/run/dependencies:
|
|
post:
|
|
summary: run a one-off dependencies job
|
|
operationId: runRawScriptDependencies
|
|
tags:
|
|
- job
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
|
|
requestBody:
|
|
description: raw script content
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
raw_scripts:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/RawScriptForDependencies"
|
|
entrypoint:
|
|
type: string
|
|
required:
|
|
- entrypoint
|
|
- raw_scripts
|
|
responses:
|
|
"201":
|
|
description: dependency job result
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
lock:
|
|
type: string
|
|
required:
|
|
- lock
|
|
|
|
/w/{workspace}/jobs/run/preview_flow:
|
|
post:
|
|
summary: run flow preview
|
|
operationId: runFlowPreview
|
|
tags:
|
|
- job
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/IncludeHeader"
|
|
- name: invisible_to_owner
|
|
description: make the run invisible to the the script owner (default false)
|
|
in: query
|
|
schema:
|
|
type: boolean
|
|
- $ref: "#/components/parameters/NewJobId"
|
|
- name: memory_id
|
|
description: memory ID for chat-enabled flows
|
|
in: query
|
|
schema:
|
|
type: string
|
|
format: uuid
|
|
|
|
requestBody:
|
|
description: preview
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/FlowPreview"
|
|
|
|
responses:
|
|
"201":
|
|
description: job created
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
format: uuid
|
|
|
|
/w/{workspace}/jobs/run_wait_result/preview_flow:
|
|
post:
|
|
summary: run flow preview and wait for result
|
|
operationId: runFlowPreviewAndWaitResult
|
|
tags:
|
|
- job
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- name: memory_id
|
|
description: memory ID for chat-enabled flows
|
|
in: query
|
|
schema:
|
|
type: string
|
|
format: uuid
|
|
|
|
requestBody:
|
|
description: preview
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/FlowPreview"
|
|
|
|
responses:
|
|
"200":
|
|
description: job result
|
|
content:
|
|
application/json:
|
|
schema: {}
|
|
|
|
/w/{workspace}/jobs/run/dynamic_select:
|
|
post:
|
|
summary: run dynamic select helper function
|
|
operationId: runDynamicSelect
|
|
tags:
|
|
- job
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
requestBody:
|
|
description: dynamic select request
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/DynamicInputData"
|
|
responses:
|
|
"201":
|
|
description: dynamic select job created
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
format: uuid
|
|
|
|
/w/{workspace}/jobs/queue/list:
|
|
get:
|
|
summary: list all queued jobs
|
|
operationId: listQueue
|
|
x-mcp-tool: true
|
|
tags:
|
|
- job
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/OrderDesc"
|
|
- $ref: "#/components/parameters/CreatedBy"
|
|
- $ref: "#/components/parameters/ParentJob"
|
|
- $ref: "#/components/parameters/Worker"
|
|
- $ref: "#/components/parameters/ScriptExactPath"
|
|
- $ref: "#/components/parameters/ScriptStartPath"
|
|
- $ref: "#/components/parameters/SchedulePath"
|
|
- $ref: "#/components/parameters/TriggerPath"
|
|
- $ref: "#/components/parameters/JobTriggerKind"
|
|
- $ref: "#/components/parameters/ScriptExactHash"
|
|
- $ref: "#/components/parameters/StartedBefore"
|
|
- $ref: "#/components/parameters/StartedAfter"
|
|
- $ref: "#/components/parameters/Success"
|
|
- $ref: "#/components/parameters/ScheduledForBeforeNow"
|
|
- $ref: "#/components/parameters/JobKinds"
|
|
- $ref: "#/components/parameters/Suspended"
|
|
- $ref: "#/components/parameters/Running"
|
|
- $ref: "#/components/parameters/ArgsFilter"
|
|
- $ref: "#/components/parameters/ResultFilter"
|
|
- $ref: "#/components/parameters/AllowWildcards"
|
|
- $ref: "#/components/parameters/Tag"
|
|
- $ref: "#/components/parameters/Page"
|
|
- $ref: "#/components/parameters/PerPage"
|
|
- name: all_workspaces
|
|
description: get jobs from all workspaces (only valid if request come from the `admins` workspace)
|
|
in: query
|
|
schema:
|
|
type: boolean
|
|
- name: is_not_schedule
|
|
description: is not a scheduled job
|
|
in: query
|
|
schema:
|
|
type: boolean
|
|
responses:
|
|
"200":
|
|
description: All queued jobs
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/QueuedJob"
|
|
|
|
/w/{workspace}/jobs/queue/count:
|
|
get:
|
|
summary: get queue count
|
|
operationId: getQueueCount
|
|
tags:
|
|
- job
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- name: all_workspaces
|
|
description: get jobs from all workspaces (only valid if request come from the `admins` workspace)
|
|
in: query
|
|
schema:
|
|
type: boolean
|
|
responses:
|
|
"200":
|
|
description: queue count
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
database_length:
|
|
type: integer
|
|
suspended:
|
|
type: integer
|
|
required:
|
|
- database_length
|
|
|
|
/w/{workspace}/jobs/completed/count:
|
|
get:
|
|
summary: get completed count
|
|
operationId: getCompletedCount
|
|
tags:
|
|
- job
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
responses:
|
|
"200":
|
|
description: completed count
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
database_length:
|
|
type: integer
|
|
required:
|
|
- database_length
|
|
|
|
/w/{workspace}/jobs/completed/count_jobs:
|
|
get:
|
|
summary: count number of completed jobs with filter
|
|
operationId: countCompletedJobs
|
|
tags:
|
|
- job
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- name: completed_after_s_ago
|
|
in: query
|
|
schema:
|
|
type: integer
|
|
- name: success
|
|
in: query
|
|
schema:
|
|
type: boolean
|
|
- name: tags
|
|
in: query
|
|
schema:
|
|
type: string
|
|
- name: all_workspaces
|
|
in: query
|
|
schema:
|
|
type: boolean
|
|
responses:
|
|
"200":
|
|
description: Count of completed jobs
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: integer
|
|
|
|
/w/{workspace}/jobs/list_filtered_uuids:
|
|
get:
|
|
summary: get the ids of all jobs matching the given filters
|
|
operationId: listFilteredJobsUuids
|
|
tags:
|
|
- job
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/CreatedBy"
|
|
- $ref: "#/components/parameters/Label"
|
|
- $ref: "#/components/parameters/Worker"
|
|
- $ref: "#/components/parameters/ParentJob"
|
|
- $ref: "#/components/parameters/ScriptExactPath"
|
|
- $ref: "#/components/parameters/ScriptStartPath"
|
|
- $ref: "#/components/parameters/SchedulePath"
|
|
- $ref: "#/components/parameters/ScriptExactHash"
|
|
- $ref: "#/components/parameters/StartedBefore"
|
|
- $ref: "#/components/parameters/StartedAfter"
|
|
- $ref: "#/components/parameters/CreatedBefore"
|
|
- $ref: "#/components/parameters/CreatedAfter"
|
|
- $ref: "#/components/parameters/CompletedBefore"
|
|
- $ref: "#/components/parameters/CompletedAfter"
|
|
- $ref: "#/components/parameters/CreatedBeforeQueue"
|
|
- $ref: "#/components/parameters/CreatedAfterQueue"
|
|
- $ref: "#/components/parameters/Running"
|
|
- $ref: "#/components/parameters/ScheduledForBeforeNow"
|
|
- $ref: "#/components/parameters/JobKinds"
|
|
- $ref: "#/components/parameters/Suspended"
|
|
- $ref: "#/components/parameters/ArgsFilter"
|
|
- $ref: "#/components/parameters/Tag"
|
|
- $ref: "#/components/parameters/ResultFilter"
|
|
- $ref: "#/components/parameters/Page"
|
|
- $ref: "#/components/parameters/PerPage"
|
|
- name: is_skipped
|
|
description: is the job skipped
|
|
in: query
|
|
schema:
|
|
type: boolean
|
|
- name: is_flow_step
|
|
description: is the job a flow step
|
|
in: query
|
|
schema:
|
|
type: boolean
|
|
- name: has_null_parent
|
|
description: has null parent
|
|
in: query
|
|
schema:
|
|
type: boolean
|
|
- name: success
|
|
description: filter on successful jobs
|
|
in: query
|
|
schema:
|
|
type: boolean
|
|
- name: all_workspaces
|
|
description: get jobs from all workspaces (only valid if request come from the `admins` workspace)
|
|
in: query
|
|
schema:
|
|
type: boolean
|
|
- name: is_not_schedule
|
|
description: is not a scheduled job
|
|
in: query
|
|
schema:
|
|
type: boolean
|
|
responses:
|
|
"200":
|
|
description: uuids of jobs
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
type: string
|
|
|
|
/w/{workspace}/jobs/queue/list_filtered_uuids:
|
|
get:
|
|
summary: get the ids of all queued jobs matching the given filters
|
|
operationId: listFilteredQueueUuids
|
|
tags:
|
|
- job
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/OrderDesc"
|
|
- $ref: "#/components/parameters/CreatedBy"
|
|
- $ref: "#/components/parameters/ParentJob"
|
|
- $ref: "#/components/parameters/ScriptExactPath"
|
|
- $ref: "#/components/parameters/ScriptStartPath"
|
|
- $ref: "#/components/parameters/SchedulePath"
|
|
- $ref: "#/components/parameters/ScriptExactHash"
|
|
- $ref: "#/components/parameters/StartedBefore"
|
|
- $ref: "#/components/parameters/StartedAfter"
|
|
- $ref: "#/components/parameters/Success"
|
|
- $ref: "#/components/parameters/ScheduledForBeforeNow"
|
|
- $ref: "#/components/parameters/JobKinds"
|
|
- $ref: "#/components/parameters/Suspended"
|
|
- $ref: "#/components/parameters/Running"
|
|
- $ref: "#/components/parameters/ArgsFilter"
|
|
- $ref: "#/components/parameters/ResultFilter"
|
|
- $ref: "#/components/parameters/AllowWildcards"
|
|
- $ref: "#/components/parameters/Tag"
|
|
- $ref: "#/components/parameters/Page"
|
|
- $ref: "#/components/parameters/PerPage"
|
|
- name: concurrency_key
|
|
in: query
|
|
required: false
|
|
schema:
|
|
type: string
|
|
- name: all_workspaces
|
|
description: get jobs from all workspaces (only valid if request come from the `admins` workspace)
|
|
in: query
|
|
schema:
|
|
type: boolean
|
|
- name: is_not_schedule
|
|
description: is not a scheduled job
|
|
in: query
|
|
schema:
|
|
type: boolean
|
|
responses:
|
|
"200":
|
|
description: uuids of jobs
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
type: string
|
|
|
|
/w/{workspace}/jobs/queue/cancel_selection:
|
|
post:
|
|
summary: cancel jobs based on the given uuids
|
|
operationId: cancelSelection
|
|
tags:
|
|
- job
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- name: force_cancel
|
|
in: query
|
|
schema:
|
|
type: boolean
|
|
requestBody:
|
|
description: uuids of the jobs to cancel
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
type: string
|
|
responses:
|
|
"200":
|
|
description: uuids of canceled jobs
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
type: string
|
|
|
|
/w/{workspace}/jobs/get_otel_traces/{id}:
|
|
get:
|
|
summary: get OpenTelemetry traces for a job
|
|
operationId: getJobOtelTraces
|
|
tags:
|
|
- job
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/JobId"
|
|
responses:
|
|
"200":
|
|
description: list of OTEL Span objects (compatible with OpenTelemetry Span proto)
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
type: object
|
|
|
|
/w/{workspace}/trigger/{trigger_kind}/resume_suspended_trigger_jobs/{trigger_path}:
|
|
post:
|
|
summary: resume all suspended jobs for a specific trigger
|
|
operationId: resumeSuspendedTriggerJobs
|
|
tags:
|
|
- trigger
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- name: trigger_kind
|
|
description: The kind of trigger
|
|
in: path
|
|
required: true
|
|
schema:
|
|
$ref: "#/components/schemas/JobTriggerKind"
|
|
- name: trigger_path
|
|
description: The path of the trigger (can contain forward slashes)
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
style: simple
|
|
explode: false
|
|
requestBody:
|
|
description: Optional list of job IDs to reassign
|
|
required: false
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
job_ids:
|
|
type: array
|
|
items:
|
|
type: string
|
|
format: uuid
|
|
description: Optional list of specific job UUIDs to reassign. If not provided, all suspended jobs for the trigger will be reassigned.
|
|
responses:
|
|
"200":
|
|
description: confirmation message
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/trigger/{trigger_kind}/cancel_suspended_trigger_jobs/{trigger_path}:
|
|
post:
|
|
summary: cancel all suspended jobs for a specific trigger
|
|
operationId: cancelSuspendedTriggerJobs
|
|
tags:
|
|
- trigger
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- name: trigger_kind
|
|
description: The kind of trigger
|
|
in: path
|
|
required: true
|
|
schema:
|
|
$ref: "#/components/schemas/JobTriggerKind"
|
|
- name: trigger_path
|
|
description: The path of the trigger (can contain forward slashes)
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
style: simple
|
|
explode: false
|
|
requestBody:
|
|
description: Optional list of job IDs to cancel
|
|
required: false
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
job_ids:
|
|
type: array
|
|
items:
|
|
type: string
|
|
format: uuid
|
|
description: Optional list of specific job UUIDs to cancel. If not provided, all suspended jobs for the trigger will be canceled.
|
|
responses:
|
|
"200":
|
|
description: confirmation message
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/jobs/completed/list:
|
|
get:
|
|
summary: list all completed jobs
|
|
operationId: listCompletedJobs
|
|
tags:
|
|
- job
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/OrderDesc"
|
|
- $ref: "#/components/parameters/CreatedBy"
|
|
- $ref: "#/components/parameters/Label"
|
|
- $ref: "#/components/parameters/Worker"
|
|
- $ref: "#/components/parameters/ParentJob"
|
|
- $ref: "#/components/parameters/ScriptExactPath"
|
|
- $ref: "#/components/parameters/ScriptStartPath"
|
|
- $ref: "#/components/parameters/SchedulePath"
|
|
- $ref: "#/components/parameters/ScriptExactHash"
|
|
- $ref: "#/components/parameters/StartedBefore"
|
|
- $ref: "#/components/parameters/StartedAfter"
|
|
- $ref: "#/components/parameters/Success"
|
|
- $ref: "#/components/parameters/JobKinds"
|
|
- $ref: "#/components/parameters/ArgsFilter"
|
|
- $ref: "#/components/parameters/ResultFilter"
|
|
- $ref: "#/components/parameters/AllowWildcards"
|
|
- $ref: "#/components/parameters/Tag"
|
|
- $ref: "#/components/parameters/Page"
|
|
- $ref: "#/components/parameters/PerPage"
|
|
- name: is_skipped
|
|
description: is the job skipped
|
|
in: query
|
|
schema:
|
|
type: boolean
|
|
- name: is_flow_step
|
|
description: is the job a flow step
|
|
in: query
|
|
schema:
|
|
type: boolean
|
|
- name: has_null_parent
|
|
description: has null parent
|
|
in: query
|
|
schema:
|
|
type: boolean
|
|
- name: is_not_schedule
|
|
description: is not a scheduled job
|
|
in: query
|
|
schema:
|
|
type: boolean
|
|
responses:
|
|
"200":
|
|
description: All completed jobs
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/CompletedJob"
|
|
|
|
/w/{workspace}/jobs/completed/export:
|
|
get:
|
|
summary: export all completed jobs for backup/migration
|
|
operationId: exportCompletedJobs
|
|
tags:
|
|
- job
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Page"
|
|
- $ref: "#/components/parameters/PerPage"
|
|
responses:
|
|
"200":
|
|
description: All completed jobs exported
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/ExportableCompletedJob"
|
|
|
|
/w/{workspace}/jobs/completed/import:
|
|
post:
|
|
summary: import completed jobs from backup/migration
|
|
operationId: importCompletedJobs
|
|
tags:
|
|
- job
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/ExportableCompletedJob"
|
|
responses:
|
|
"200":
|
|
description: Successfully imported completed jobs
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/jobs/queue/export:
|
|
get:
|
|
summary: export all queued jobs for backup/migration
|
|
operationId: exportQueuedJobs
|
|
tags:
|
|
- job
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Page"
|
|
- $ref: "#/components/parameters/PerPage"
|
|
responses:
|
|
"200":
|
|
description: All queued jobs exported
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/ExportableQueuedJob"
|
|
|
|
/w/{workspace}/jobs/queue/import:
|
|
post:
|
|
summary: import queued jobs from backup/migration
|
|
operationId: importQueuedJobs
|
|
tags:
|
|
- job
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/ExportableQueuedJob"
|
|
responses:
|
|
"200":
|
|
description: Successfully imported queued jobs
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/jobs/delete:
|
|
post:
|
|
summary: delete jobs by IDs from all related tables
|
|
operationId: deleteJobs
|
|
tags:
|
|
- job
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
type: string
|
|
format: uuid
|
|
description: Array of job IDs to delete
|
|
responses:
|
|
"200":
|
|
description: Successfully deleted jobs
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
description: Summary of deleted jobs and rows
|
|
|
|
/w/{workspace}/jobs/list:
|
|
get:
|
|
summary: list all jobs
|
|
operationId: listJobs
|
|
x-mcp-tool: true
|
|
tags:
|
|
- job
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/CreatedBy"
|
|
- $ref: "#/components/parameters/Label"
|
|
- $ref: "#/components/parameters/Worker"
|
|
- $ref: "#/components/parameters/ParentJob"
|
|
- $ref: "#/components/parameters/ScriptExactPath"
|
|
- $ref: "#/components/parameters/ScriptStartPath"
|
|
- $ref: "#/components/parameters/SchedulePath"
|
|
- $ref: "#/components/parameters/ScriptExactHash"
|
|
- $ref: "#/components/parameters/StartedBefore"
|
|
- $ref: "#/components/parameters/StartedAfter"
|
|
- $ref: "#/components/parameters/CreatedBefore"
|
|
- $ref: "#/components/parameters/CreatedAfter"
|
|
- $ref: "#/components/parameters/CompletedBefore"
|
|
- $ref: "#/components/parameters/CompletedAfter"
|
|
- $ref: "#/components/parameters/CreatedBeforeQueue"
|
|
- $ref: "#/components/parameters/CreatedAfterQueue"
|
|
- $ref: "#/components/parameters/Running"
|
|
- $ref: "#/components/parameters/ScheduledForBeforeNow"
|
|
- $ref: "#/components/parameters/JobKinds"
|
|
- $ref: "#/components/parameters/Suspended"
|
|
- $ref: "#/components/parameters/ArgsFilter"
|
|
- $ref: "#/components/parameters/Tag"
|
|
- $ref: "#/components/parameters/ResultFilter"
|
|
- $ref: "#/components/parameters/AllowWildcards"
|
|
- $ref: "#/components/parameters/PerPage"
|
|
- $ref: "#/components/parameters/JobTriggerKind"
|
|
- name: is_skipped
|
|
description: is the job skipped
|
|
in: query
|
|
schema:
|
|
type: boolean
|
|
- name: is_flow_step
|
|
description: is the job a flow step
|
|
in: query
|
|
schema:
|
|
type: boolean
|
|
- name: has_null_parent
|
|
description: has null parent
|
|
in: query
|
|
schema:
|
|
type: boolean
|
|
- name: success
|
|
description: filter on successful jobs
|
|
in: query
|
|
schema:
|
|
type: boolean
|
|
- name: all_workspaces
|
|
description: get jobs from all workspaces (only valid if request come from the `admins` workspace)
|
|
in: query
|
|
schema:
|
|
type: boolean
|
|
- name: is_not_schedule
|
|
description: is not a scheduled job
|
|
in: query
|
|
schema:
|
|
type: boolean
|
|
- name: broad_filter
|
|
description: broad search across multiple fields (case-insensitive substring match on path, tag, schedule path, trigger kind, label)
|
|
in: query
|
|
schema:
|
|
type: string
|
|
responses:
|
|
"200":
|
|
description: All jobs
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/Job"
|
|
|
|
/jobs/db_clock:
|
|
get:
|
|
summary: get db clock
|
|
operationId: getDbClock
|
|
tags:
|
|
- job
|
|
responses:
|
|
"200":
|
|
description: the timestamp of the db that can be used to compute the drift
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: integer
|
|
|
|
/jobs/completed/count_by_tag:
|
|
get:
|
|
summary: Count jobs by tag
|
|
operationId: countJobsByTag
|
|
tags:
|
|
- job
|
|
parameters:
|
|
- name: horizon_secs
|
|
in: query
|
|
description: Past Time horizon in seconds (when to start the count = now - horizon) (default is 3600)
|
|
required: false
|
|
schema:
|
|
type: integer
|
|
- name: workspace_id
|
|
in: query
|
|
description: Specific workspace ID to filter results (optional)
|
|
required: false
|
|
schema:
|
|
type: string
|
|
responses:
|
|
"200":
|
|
description: Job counts by tag
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
type: object
|
|
properties:
|
|
tag:
|
|
type: string
|
|
count:
|
|
type: integer
|
|
required:
|
|
- tag
|
|
- count
|
|
|
|
/w/{workspace}/jobs_u/get/{id}:
|
|
get:
|
|
summary: get job
|
|
operationId: getJob
|
|
x-mcp-tool: true
|
|
tags:
|
|
- job
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/JobId"
|
|
- name: no_logs
|
|
in: query
|
|
schema:
|
|
type: boolean
|
|
- name: no_code
|
|
in: query
|
|
schema:
|
|
type: boolean
|
|
responses:
|
|
"200":
|
|
description: job details
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/Job"
|
|
|
|
/w/{workspace}/jobs_u/get_root_job_id/{id}:
|
|
get:
|
|
summary: get root job id
|
|
operationId: getRootJobId
|
|
tags:
|
|
- job
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/JobId"
|
|
responses:
|
|
"200":
|
|
description: get root job id
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/jobs_u/get_logs/{id}:
|
|
get:
|
|
summary: get job logs
|
|
operationId: getJobLogs
|
|
x-mcp-tool: true
|
|
tags:
|
|
- job
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/JobId"
|
|
- name: remove_ansi_warnings
|
|
in: query
|
|
schema:
|
|
type: boolean
|
|
responses:
|
|
"200":
|
|
description: job details
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/jobs_u/get_flow_all_logs/{id}:
|
|
get:
|
|
summary: get all logs for a flow job
|
|
operationId: getFlowAllLogs
|
|
tags:
|
|
- job
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/JobId"
|
|
responses:
|
|
"200":
|
|
description: concatenated logs of all flow steps
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/jobs_u/get_completed_logs_tail/{id}:
|
|
get:
|
|
summary: get completed job logs tail
|
|
operationId: getCompletedJobLogsTail
|
|
tags:
|
|
- job
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/JobId"
|
|
responses:
|
|
"200":
|
|
description: completed job logs tail
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/jobs_u/get_args/{id}:
|
|
get:
|
|
summary: get job args
|
|
operationId: getJobArgs
|
|
tags:
|
|
- job
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/JobId"
|
|
responses:
|
|
"200":
|
|
description: job args
|
|
content:
|
|
application/json:
|
|
schema: {}
|
|
|
|
/w/{workspace}/jobs_u/queue/get_started_at_by_ids:
|
|
post:
|
|
summary: get started at by ids
|
|
operationId: getStartedAtByIds
|
|
tags:
|
|
- job
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
requestBody:
|
|
description: ids
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
type: string
|
|
responses:
|
|
"200":
|
|
description: started at by ids
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
type: string
|
|
format: date-time
|
|
|
|
/w/{workspace}/jobs_u/getupdate/{id}:
|
|
get:
|
|
summary: get job updates
|
|
operationId: getJobUpdates
|
|
tags:
|
|
- job
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/JobId"
|
|
- name: running
|
|
in: query
|
|
schema:
|
|
type: boolean
|
|
- name: log_offset
|
|
in: query
|
|
schema:
|
|
type: integer
|
|
- name: stream_offset
|
|
in: query
|
|
schema:
|
|
type: integer
|
|
- name: get_progress
|
|
in: query
|
|
schema:
|
|
type: boolean
|
|
- name: no_logs
|
|
in: query
|
|
schema:
|
|
type: boolean
|
|
|
|
responses:
|
|
"200":
|
|
description: job details
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
running:
|
|
type: boolean
|
|
completed:
|
|
type: boolean
|
|
new_logs:
|
|
type: string
|
|
log_offset:
|
|
type: integer
|
|
mem_peak:
|
|
type: integer
|
|
progress:
|
|
type: integer
|
|
stream_offset:
|
|
type: integer
|
|
new_result_stream:
|
|
type: string
|
|
flow_status:
|
|
$ref: "../../openflow.openapi.yaml#/components/schemas/FlowStatus"
|
|
workflow_as_code_status:
|
|
$ref: "#/components/schemas/WorkflowStatus"
|
|
|
|
/w/{workspace}/jobs_u/getupdate_sse/{id}:
|
|
get:
|
|
summary: get job updates via server-sent events
|
|
operationId: getJobUpdatesSSE
|
|
tags:
|
|
- job
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/JobId"
|
|
- name: running
|
|
in: query
|
|
schema:
|
|
type: boolean
|
|
- name: log_offset
|
|
in: query
|
|
schema:
|
|
type: integer
|
|
- name: stream_offset
|
|
in: query
|
|
schema:
|
|
type: integer
|
|
- name: get_progress
|
|
in: query
|
|
schema:
|
|
type: boolean
|
|
- name: only_result
|
|
in: query
|
|
schema:
|
|
type: boolean
|
|
- name: no_logs
|
|
in: query
|
|
schema:
|
|
type: boolean
|
|
- name: fast
|
|
in: query
|
|
schema:
|
|
type: boolean
|
|
|
|
responses:
|
|
"200":
|
|
description: server-sent events stream of job updates
|
|
content:
|
|
text/event-stream:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/jobs_u/get_log_file/{path}:
|
|
get:
|
|
summary: get log file from object store
|
|
operationId: getLogFileFromStore
|
|
tags:
|
|
- job
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- name: path
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
responses:
|
|
"200":
|
|
description: job log
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/jobs_u/get_flow_debug_info/{id}:
|
|
get:
|
|
summary: get flow debug info
|
|
operationId: getFlowDebugInfo
|
|
tags:
|
|
- job
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/JobId"
|
|
responses:
|
|
"200":
|
|
description: flow debug info details
|
|
content:
|
|
application/json:
|
|
schema: {}
|
|
|
|
/w/{workspace}/jobs_u/completed/get/{id}:
|
|
get:
|
|
summary: get completed job
|
|
operationId: getCompletedJob
|
|
tags:
|
|
- job
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/JobId"
|
|
responses:
|
|
"200":
|
|
description: job details
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/CompletedJob"
|
|
|
|
/w/{workspace}/jobs_u/completed/get_result/{id}:
|
|
get:
|
|
summary: get completed job result
|
|
operationId: getCompletedJobResult
|
|
tags:
|
|
- job
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/JobId"
|
|
- name: suspended_job
|
|
in: query
|
|
schema:
|
|
type: string
|
|
- name: resume_id
|
|
in: query
|
|
schema:
|
|
type: integer
|
|
- name: secret
|
|
in: query
|
|
schema:
|
|
type: string
|
|
- name: approver
|
|
in: query
|
|
schema:
|
|
type: string
|
|
responses:
|
|
"200":
|
|
description: result
|
|
content:
|
|
application/json:
|
|
schema: {}
|
|
|
|
/w/{workspace}/jobs_u/completed/get_result_maybe/{id}:
|
|
get:
|
|
summary: get completed job result if job is completed
|
|
operationId: getCompletedJobResultMaybe
|
|
tags:
|
|
- job
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/JobId"
|
|
- $ref: "#/components/parameters/GetStarted"
|
|
|
|
responses:
|
|
"200":
|
|
description: result
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
completed:
|
|
type: boolean
|
|
result: {}
|
|
success:
|
|
type: boolean
|
|
started:
|
|
type: boolean
|
|
required:
|
|
- completed
|
|
- result
|
|
|
|
/w/{workspace}/jobs_u/completed/get_timing/{id}:
|
|
get:
|
|
summary: get completed job timing
|
|
operationId: getCompletedJobTiming
|
|
tags:
|
|
- job
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/JobId"
|
|
responses:
|
|
"200":
|
|
description: job timing details
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
created_at:
|
|
type: string
|
|
format: date-time
|
|
started_at:
|
|
type: string
|
|
format: date-time
|
|
duration_ms:
|
|
type: integer
|
|
required:
|
|
- created_at
|
|
|
|
/w/{workspace}/jobs/completed/delete/{id}:
|
|
post:
|
|
summary: delete completed job (erase content but keep run id)
|
|
operationId: deleteCompletedJob
|
|
tags:
|
|
- job
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/JobId"
|
|
responses:
|
|
"200":
|
|
description: job details
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/CompletedJob"
|
|
|
|
/w/{workspace}/jobs_u/queue/cancel/{id}:
|
|
post:
|
|
summary: cancel queued or running job
|
|
operationId: cancelQueuedJob
|
|
tags:
|
|
- job
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/JobId"
|
|
requestBody:
|
|
description: reason
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
reason:
|
|
type: string
|
|
|
|
responses:
|
|
"200":
|
|
description: job canceled
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/jobs_u/queue/cancel_persistent/{path}:
|
|
post:
|
|
summary: cancel all queued jobs for persistent script
|
|
operationId: cancelPersistentQueuedJobs
|
|
tags:
|
|
- job
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Path"
|
|
requestBody:
|
|
description: reason
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
reason:
|
|
type: string
|
|
|
|
responses:
|
|
"200":
|
|
description: persistent job scaled down to zero
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/jobs_u/queue/force_cancel/{id}:
|
|
post:
|
|
summary: force cancel queued job
|
|
operationId: forceCancelQueuedJob
|
|
tags:
|
|
- job
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/JobId"
|
|
requestBody:
|
|
description: reason
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
reason:
|
|
type: string
|
|
|
|
responses:
|
|
"200":
|
|
description: job canceled
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/jobs/queue/position/{scheduled_for}:
|
|
get:
|
|
summary: get queue position for a job
|
|
operationId: getQueuePosition
|
|
tags:
|
|
- job
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- name: scheduled_for
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: integer
|
|
description: The scheduled for timestamp in milliseconds
|
|
responses:
|
|
"200":
|
|
description: queue position information
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
position:
|
|
type: integer
|
|
description: The position in queue (1-based), null if not in queue or already running
|
|
|
|
/w/{workspace}/jobs/queue/scheduled_for/{id}:
|
|
get:
|
|
summary: get scheduled for timestamp for a job
|
|
operationId: getScheduledFor
|
|
tags:
|
|
- job
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/JobId"
|
|
responses:
|
|
"200":
|
|
description: scheduled for timestamp
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: integer
|
|
|
|
/w/{workspace}/jobs/job_signature/{id}/{resume_id}:
|
|
get:
|
|
summary: create an HMac signature given a job id and a resume id
|
|
operationId: createJobSignature
|
|
tags:
|
|
- job
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/JobId"
|
|
- name: resume_id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: integer
|
|
- name: approver
|
|
in: query
|
|
schema:
|
|
type: string
|
|
responses:
|
|
"200":
|
|
description: job signature
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/jobs/resume_urls/{id}/{resume_id}:
|
|
get:
|
|
summary: get resume urls given a job_id, resume_id and a nonce to resume a flow
|
|
operationId: getResumeUrls
|
|
tags:
|
|
- job
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/JobId"
|
|
- name: resume_id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: integer
|
|
- name: approver
|
|
in: query
|
|
schema:
|
|
type: string
|
|
- name: flow_level
|
|
in: query
|
|
description: If true, generate resume URLs for the parent flow instead of the specific step. This allows pre-approvals that can be consumed by any later suspend step in the same flow.
|
|
schema:
|
|
type: boolean
|
|
responses:
|
|
"200":
|
|
description: url endpoints
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
approvalPage:
|
|
type: string
|
|
resume:
|
|
type: string
|
|
cancel:
|
|
type: string
|
|
required:
|
|
- approvalPage
|
|
- resume
|
|
- cancel
|
|
|
|
/w/{workspace}/jobs/slack_approval/{id}:
|
|
get:
|
|
summary: generate interactive slack approval for suspended job
|
|
operationId: getSlackApprovalPayload
|
|
tags:
|
|
- job
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/JobId"
|
|
- name: approver
|
|
in: query
|
|
schema:
|
|
type: string
|
|
- name: message
|
|
in: query
|
|
schema:
|
|
type: string
|
|
- name: slack_resource_path
|
|
in: query
|
|
required: true
|
|
schema:
|
|
type: string
|
|
- name: channel_id
|
|
in: query
|
|
required: true
|
|
schema:
|
|
type: string
|
|
- name: flow_step_id
|
|
in: query
|
|
required: true
|
|
schema:
|
|
type: string
|
|
- name: default_args_json
|
|
in: query
|
|
required: false
|
|
schema:
|
|
type: string
|
|
- name: dynamic_enums_json
|
|
in: query
|
|
required: false
|
|
schema:
|
|
type: string
|
|
- name: resume_button_text
|
|
in: query
|
|
required: false
|
|
schema:
|
|
type: string
|
|
- name: cancel_button_text
|
|
in: query
|
|
required: false
|
|
schema:
|
|
type: string
|
|
responses:
|
|
"200":
|
|
description: Interactive slack approval message sent successfully
|
|
|
|
/w/{workspace}/jobs/teams_approval/{id}:
|
|
get:
|
|
summary: generate interactive teams approval for suspended job
|
|
operationId: getTeamsApprovalPayload
|
|
tags:
|
|
- job
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/JobId"
|
|
- name: approver
|
|
in: query
|
|
schema:
|
|
type: string
|
|
- name: message
|
|
in: query
|
|
schema:
|
|
type: string
|
|
- name: team_name
|
|
in: query
|
|
required: true
|
|
schema:
|
|
type: string
|
|
- name: channel_name
|
|
in: query
|
|
required: true
|
|
schema:
|
|
type: string
|
|
- name: flow_step_id
|
|
in: query
|
|
required: true
|
|
schema:
|
|
type: string
|
|
- name: default_args_json
|
|
in: query
|
|
required: false
|
|
schema:
|
|
type: string
|
|
- name: dynamic_enums_json
|
|
in: query
|
|
required: false
|
|
schema:
|
|
type: string
|
|
- name: resume_button_text
|
|
in: query
|
|
required: false
|
|
schema:
|
|
type: string
|
|
- name: cancel_button_text
|
|
in: query
|
|
required: false
|
|
schema:
|
|
type: string
|
|
responses:
|
|
"200":
|
|
description: Interactive slack approval message sent successfully
|
|
|
|
/w/{workspace}/jobs_u/flow/resume_suspended/{job_id}:
|
|
post:
|
|
summary: resume or cancel a suspended flow/WAC job
|
|
description: >
|
|
Resume or cancel a suspended flow/WAC job. Uses approval rules to
|
|
determine authorization. Either a valid approval_token or an
|
|
authenticated session is required.
|
|
operationId: resumeSuspended
|
|
tags:
|
|
- job
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- name: job_id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
format: uuid
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
payload:
|
|
description: payload to send to the resumed job
|
|
approval_token:
|
|
type: string
|
|
description: approval token for unauthenticated access
|
|
approved:
|
|
type: boolean
|
|
description: whether to approve (true) or cancel (false) the job
|
|
default: true
|
|
responses:
|
|
"201":
|
|
description: job resumed
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/jobs_u/flow/approval_info/{job_id}:
|
|
get:
|
|
summary: get approval info for a suspended flow/WAC job
|
|
description: >
|
|
Get approval info for a suspended flow/WAC job. Returns form schema,
|
|
approval rules, and whether the current user can approve. Either a
|
|
valid token query parameter or an authenticated session is required.
|
|
operationId: getApprovalInfo
|
|
tags:
|
|
- job
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- name: job_id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
format: uuid
|
|
- name: token
|
|
in: query
|
|
required: false
|
|
schema:
|
|
type: string
|
|
description: approval token for unauthenticated access
|
|
responses:
|
|
"200":
|
|
description: approval info
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- flow_id
|
|
- can_approve
|
|
- user_auth_required
|
|
- approvers
|
|
properties:
|
|
flow_id:
|
|
type: string
|
|
format: uuid
|
|
form_schema:
|
|
description: form schema for the approval step
|
|
description:
|
|
description: description of the approval step
|
|
approval_conditions:
|
|
type: object
|
|
properties:
|
|
user_auth_required:
|
|
type: boolean
|
|
user_groups_required:
|
|
type: array
|
|
items:
|
|
type: string
|
|
self_approval_disabled:
|
|
type: boolean
|
|
required:
|
|
- user_auth_required
|
|
- user_groups_required
|
|
- self_approval_disabled
|
|
can_approve:
|
|
type: boolean
|
|
description: whether the current user/token holder can approve
|
|
user_auth_required:
|
|
type: boolean
|
|
description: whether user authentication is required to approve
|
|
hide_cancel:
|
|
type: boolean
|
|
description: whether to hide the cancel button in the UI
|
|
approvers:
|
|
type: array
|
|
items:
|
|
type: object
|
|
required:
|
|
- resume_id
|
|
- approver
|
|
properties:
|
|
resume_id:
|
|
type: integer
|
|
approver:
|
|
type: string
|
|
|
|
/w/{workspace}/jobs_u/resume/{id}/{resume_id}/{signature}:
|
|
get:
|
|
summary: resume a job for a suspended flow
|
|
operationId: resumeSuspendedJobGet
|
|
tags:
|
|
- job
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/JobId"
|
|
- $ref: "#/components/parameters/Payload"
|
|
- name: resume_id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: integer
|
|
- name: signature
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
- name: approver
|
|
in: query
|
|
schema:
|
|
type: string
|
|
responses:
|
|
"201":
|
|
description: job resumed
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
post:
|
|
summary: resume a job for a suspended flow
|
|
operationId: resumeSuspendedJobPost
|
|
tags:
|
|
- job
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/JobId"
|
|
- name: resume_id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: integer
|
|
- name: signature
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
- name: approver
|
|
in: query
|
|
schema:
|
|
type: string
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
responses:
|
|
"201":
|
|
description: job resumed
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/jobs/flow/user_states/{id}/{key}:
|
|
post:
|
|
summary: set flow user state at a given key
|
|
operationId: setFlowUserState
|
|
tags:
|
|
- job
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/JobId"
|
|
- name: key
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
requestBody:
|
|
description: new value
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema: {}
|
|
responses:
|
|
"200":
|
|
description: flow user state updated
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
get:
|
|
summary: get flow user state at a given key
|
|
operationId: getFlowUserState
|
|
tags:
|
|
- job
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/JobId"
|
|
- name: key
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
responses:
|
|
"200":
|
|
description: flow user state updated
|
|
content:
|
|
application/json:
|
|
schema: {}
|
|
|
|
/w/{workspace}/jobs/flow/resume/{id}:
|
|
post:
|
|
summary: resume a job for a suspended flow as an owner
|
|
operationId: resumeSuspendedFlowAsOwner
|
|
tags:
|
|
- job
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/JobId"
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
responses:
|
|
"201":
|
|
description: job resumed
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/jobs_u/cancel/{id}/{resume_id}/{signature}:
|
|
get:
|
|
summary: cancel a job for a suspended flow
|
|
operationId: cancelSuspendedJobGet
|
|
tags:
|
|
- job
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/JobId"
|
|
- name: resume_id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: integer
|
|
- name: signature
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
- name: approver
|
|
in: query
|
|
schema:
|
|
type: string
|
|
responses:
|
|
"201":
|
|
description: job canceled
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
post:
|
|
summary: cancel a job for a suspended flow
|
|
operationId: cancelSuspendedJobPost
|
|
tags:
|
|
- job
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/JobId"
|
|
- name: resume_id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: integer
|
|
- name: signature
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
- name: approver
|
|
in: query
|
|
schema:
|
|
type: string
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
responses:
|
|
"201":
|
|
description: job canceled
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/jobs_u/get_flow/{id}/{resume_id}/{signature}:
|
|
get:
|
|
summary: get parent flow job of suspended job
|
|
operationId: getSuspendedJobFlow
|
|
tags:
|
|
- job
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/JobId"
|
|
- name: resume_id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: integer
|
|
- name: signature
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
- name: approver
|
|
in: query
|
|
schema:
|
|
type: string
|
|
responses:
|
|
"200":
|
|
description: parent flow details
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
job:
|
|
$ref: "#/components/schemas/Job"
|
|
approvers:
|
|
type: array
|
|
items:
|
|
type: object
|
|
properties:
|
|
resume_id:
|
|
type: integer
|
|
approver:
|
|
type: string
|
|
required:
|
|
- resume_id
|
|
- approver
|
|
required:
|
|
- job
|
|
- approvers
|
|
|
|
/schedules/preview:
|
|
post:
|
|
summary: preview schedule
|
|
operationId: previewSchedule
|
|
tags:
|
|
- schedule
|
|
requestBody:
|
|
description: schedule
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
schedule:
|
|
type: string
|
|
timezone:
|
|
type: string
|
|
cron_version:
|
|
type: string
|
|
required:
|
|
- schedule
|
|
- timezone
|
|
responses:
|
|
"200":
|
|
description: List of 5 estimated upcoming execution events (in UTC)
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
type: string
|
|
format: date-time
|
|
|
|
/w/{workspace}/schedules/create:
|
|
post:
|
|
summary: create schedule
|
|
operationId: createSchedule
|
|
x-mcp-tool: true
|
|
x-mcp-instructions: |
|
|
Creates a new schedule.
|
|
The schedule should include seconds.
|
|
You should get the schema of the script or flow before creating the schedule to correctly specify the arguments needed.
|
|
tags:
|
|
- schedule
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
requestBody:
|
|
description: new schedule
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/NewSchedule"
|
|
responses:
|
|
"201":
|
|
description: schedule created
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/schedules/update/{path}:
|
|
post:
|
|
summary: update schedule
|
|
operationId: updateSchedule
|
|
x-mcp-tool: true
|
|
x-mcp-instructions: |
|
|
Updates a schedule.
|
|
The schedule should include seconds.
|
|
You should get the schema of the script or flow before updating the schedule to correctly specify the arguments needed.
|
|
tags:
|
|
- schedule
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Path"
|
|
requestBody:
|
|
description: updated schedule
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/EditSchedule"
|
|
responses:
|
|
"200":
|
|
description: schedule updated
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/schedules/setenabled/{path}:
|
|
post:
|
|
summary: set enabled schedule
|
|
operationId: setScheduleEnabled
|
|
tags:
|
|
- schedule
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Path"
|
|
requestBody:
|
|
description: updated schedule enable
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
enabled:
|
|
type: boolean
|
|
required:
|
|
- enabled
|
|
|
|
responses:
|
|
"200":
|
|
description: schedule enabled set
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/schedules/delete/{path}:
|
|
delete:
|
|
summary: delete schedule
|
|
operationId: deleteSchedule
|
|
x-mcp-tool: true
|
|
tags:
|
|
- schedule
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Path"
|
|
responses:
|
|
"200":
|
|
description: schedule deleted
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/schedules/get/{path}:
|
|
get:
|
|
summary: get schedule
|
|
operationId: getSchedule
|
|
x-mcp-tool: true
|
|
tags:
|
|
- schedule
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Path"
|
|
responses:
|
|
"200":
|
|
description: schedule deleted
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/Schedule"
|
|
|
|
/w/{workspace}/schedules/exists/{path}:
|
|
get:
|
|
summary: does schedule exists
|
|
operationId: existsSchedule
|
|
tags:
|
|
- schedule
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Path"
|
|
responses:
|
|
"200":
|
|
description: schedule exists
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: boolean
|
|
|
|
/w/{workspace}/schedules/list:
|
|
get:
|
|
summary: list schedules
|
|
operationId: listSchedules
|
|
x-mcp-tool: true
|
|
tags:
|
|
- schedule
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Page"
|
|
- $ref: "#/components/parameters/PerPage"
|
|
- $ref: "#/components/parameters/ArgsFilter"
|
|
- name: path
|
|
description: filter by path (script path)
|
|
in: query
|
|
schema:
|
|
type: string
|
|
- name: is_flow
|
|
description: filter schedules by whether they target a flow
|
|
in: query
|
|
schema:
|
|
type: boolean
|
|
- name: path_start
|
|
description: filter schedules by path prefix
|
|
in: query
|
|
schema:
|
|
type: string
|
|
- name: schedule_path
|
|
description: exact match on the schedule's path
|
|
in: query
|
|
schema:
|
|
type: string
|
|
- name: description
|
|
description: pattern match filter for description field (case-insensitive)
|
|
in: query
|
|
schema:
|
|
type: string
|
|
- name: summary
|
|
description: pattern match filter for summary field (case-insensitive)
|
|
in: query
|
|
schema:
|
|
type: string
|
|
- name: broad_filter
|
|
description: broad search across multiple fields (case-insensitive substring match)
|
|
in: query
|
|
schema:
|
|
type: string
|
|
- name: label
|
|
in: query
|
|
required: false
|
|
schema:
|
|
type: string
|
|
description: Filter by label
|
|
responses:
|
|
"200":
|
|
description: schedule list
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/Schedule"
|
|
|
|
/w/{workspace}/schedules/list_with_jobs:
|
|
get:
|
|
summary: list schedules with last 20 jobs
|
|
operationId: listSchedulesWithJobs
|
|
tags:
|
|
- schedule
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Page"
|
|
- $ref: "#/components/parameters/PerPage"
|
|
responses:
|
|
"200":
|
|
description: schedule list
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/ScheduleWJobs"
|
|
|
|
/w/{workspace}/schedules/setdefaulthandler:
|
|
post:
|
|
summary: Set default error or recoevery handler
|
|
operationId: setDefaultErrorOrRecoveryHandler
|
|
tags:
|
|
- schedule
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
requestBody:
|
|
description: Handler description
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
handler_type:
|
|
type: string
|
|
enum: ["error", "recovery", "success"]
|
|
override_existing:
|
|
type: boolean
|
|
path:
|
|
type: string
|
|
extra_args:
|
|
type: object
|
|
number_of_occurence:
|
|
type: integer
|
|
number_of_occurence_exact:
|
|
type: boolean
|
|
workspace_handler_muted:
|
|
type: boolean
|
|
required:
|
|
- handler_type
|
|
- override_existing
|
|
responses:
|
|
"201":
|
|
description: default error handler set
|
|
|
|
/w/{workspace}/openapi/generate:
|
|
post:
|
|
summary: generate openapi spec from http routes/webhook
|
|
operationId: generateOpenapiSpec
|
|
tags:
|
|
- openapi
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
requestBody:
|
|
description: openapi spec info and url
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/GenerateOpenapiSpec"
|
|
responses:
|
|
"200":
|
|
description: openapi spec
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/openapi/download:
|
|
post:
|
|
summary: Download the OpenAPI v3.1 spec as a file
|
|
operationId: DownloadOpenapiSpec
|
|
tags:
|
|
- openapi
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
requestBody:
|
|
description: openapi spec info and url
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/GenerateOpenapiSpec"
|
|
responses:
|
|
"200":
|
|
description: Downloaded OpenAPI spec
|
|
content:
|
|
application/octet-stream:
|
|
schema:
|
|
type: string
|
|
format: binary
|
|
|
|
/w/{workspace}/http_triggers/create_many:
|
|
post:
|
|
summary: create many HTTP triggers
|
|
operationId: createHttpTriggers
|
|
tags:
|
|
- http_trigger
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
requestBody:
|
|
description: new http trigger
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/NewHttpTrigger"
|
|
responses:
|
|
"201":
|
|
description: http trigger created
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/http_triggers/create:
|
|
post:
|
|
summary: create http trigger
|
|
operationId: createHttpTrigger
|
|
tags:
|
|
- http_trigger
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
requestBody:
|
|
description: new http trigger
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/NewHttpTrigger"
|
|
responses:
|
|
"201":
|
|
description: http trigger created
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/http_triggers/update/{path}:
|
|
post:
|
|
summary: update http trigger
|
|
operationId: updateHttpTrigger
|
|
tags:
|
|
- http_trigger
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Path"
|
|
requestBody:
|
|
description: updated trigger
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/EditHttpTrigger"
|
|
responses:
|
|
"200":
|
|
description: http trigger updated
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/http_triggers/delete/{path}:
|
|
delete:
|
|
summary: delete http trigger
|
|
operationId: deleteHttpTrigger
|
|
tags:
|
|
- http_trigger
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Path"
|
|
responses:
|
|
"200":
|
|
description: http trigger deleted
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/http_triggers/get/{path}:
|
|
get:
|
|
summary: get http trigger
|
|
operationId: getHttpTrigger
|
|
tags:
|
|
- http_trigger
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Path"
|
|
responses:
|
|
"200":
|
|
description: http trigger deleted
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/HttpTrigger"
|
|
|
|
/w/{workspace}/http_triggers/list:
|
|
get:
|
|
summary: list http triggers
|
|
operationId: listHttpTriggers
|
|
tags:
|
|
- http_trigger
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
required: true
|
|
- $ref: "#/components/parameters/Page"
|
|
- $ref: "#/components/parameters/PerPage"
|
|
- name: path
|
|
description: filter by path
|
|
in: query
|
|
schema:
|
|
type: string
|
|
- name: is_flow
|
|
in: query
|
|
schema:
|
|
type: boolean
|
|
- name: path_start
|
|
in: query
|
|
schema:
|
|
type: string
|
|
- name: label
|
|
in: query
|
|
required: false
|
|
schema:
|
|
type: string
|
|
description: Filter by label
|
|
responses:
|
|
"200":
|
|
description: http trigger list
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/HttpTrigger"
|
|
|
|
/w/{workspace}/http_triggers/exists/{path}:
|
|
get:
|
|
summary: does http trigger exists
|
|
operationId: existsHttpTrigger
|
|
tags:
|
|
- http_trigger
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Path"
|
|
responses:
|
|
"200":
|
|
description: http trigger exists
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: boolean
|
|
|
|
/w/{workspace}/http_triggers/route_exists:
|
|
post:
|
|
summary: does route exists
|
|
operationId: existsRoute
|
|
tags:
|
|
- http_trigger
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
requestBody:
|
|
description: route exists request
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
route_path:
|
|
type: string
|
|
http_method:
|
|
$ref: "#/components/schemas/HttpMethod"
|
|
trigger_path:
|
|
type: string
|
|
workspaced_route:
|
|
type: boolean
|
|
required:
|
|
- route_path
|
|
- http_method
|
|
responses:
|
|
"200":
|
|
description: route exists
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: boolean
|
|
|
|
/w/{workspace}/http_triggers/setmode/{path}:
|
|
post:
|
|
summary: enable/disable http trigger
|
|
operationId: setHttpTriggerMode
|
|
tags:
|
|
- http_trigger
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Path"
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
mode:
|
|
$ref: "#/components/schemas/TriggerMode"
|
|
required:
|
|
- mode
|
|
responses:
|
|
"200":
|
|
description: http trigger enable/disable
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/websocket_triggers/create:
|
|
post:
|
|
summary: create websocket trigger
|
|
operationId: createWebsocketTrigger
|
|
tags:
|
|
- websocket_trigger
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
requestBody:
|
|
description: new websocket trigger
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/NewWebsocketTrigger"
|
|
responses:
|
|
"201":
|
|
description: websocket trigger created
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/websocket_triggers/update/{path}:
|
|
post:
|
|
summary: update websocket trigger
|
|
operationId: updateWebsocketTrigger
|
|
tags:
|
|
- websocket_trigger
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Path"
|
|
requestBody:
|
|
description: updated trigger
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/EditWebsocketTrigger"
|
|
responses:
|
|
"200":
|
|
description: websocket trigger updated
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/websocket_triggers/delete/{path}:
|
|
delete:
|
|
summary: delete websocket trigger
|
|
operationId: deleteWebsocketTrigger
|
|
tags:
|
|
- websocket_trigger
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Path"
|
|
responses:
|
|
"200":
|
|
description: websocket trigger deleted
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/websocket_triggers/get/{path}:
|
|
get:
|
|
summary: get websocket trigger
|
|
operationId: getWebsocketTrigger
|
|
tags:
|
|
- websocket_trigger
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Path"
|
|
responses:
|
|
"200":
|
|
description: websocket trigger deleted
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/WebsocketTrigger"
|
|
|
|
/w/{workspace}/websocket_triggers/list:
|
|
get:
|
|
summary: list websocket triggers
|
|
operationId: listWebsocketTriggers
|
|
tags:
|
|
- websocket_trigger
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
required: true
|
|
- $ref: "#/components/parameters/Page"
|
|
- $ref: "#/components/parameters/PerPage"
|
|
- name: path
|
|
description: filter by path
|
|
in: query
|
|
schema:
|
|
type: string
|
|
- name: is_flow
|
|
in: query
|
|
schema:
|
|
type: boolean
|
|
- name: path_start
|
|
in: query
|
|
schema:
|
|
type: string
|
|
- name: label
|
|
in: query
|
|
required: false
|
|
schema:
|
|
type: string
|
|
description: Filter by label
|
|
responses:
|
|
"200":
|
|
description: websocket trigger list
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/WebsocketTrigger"
|
|
|
|
/w/{workspace}/websocket_triggers/exists/{path}:
|
|
get:
|
|
summary: does websocket trigger exists
|
|
operationId: existsWebsocketTrigger
|
|
tags:
|
|
- websocket_trigger
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Path"
|
|
responses:
|
|
"200":
|
|
description: websocket trigger exists
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: boolean
|
|
|
|
/w/{workspace}/websocket_triggers/setmode/{path}:
|
|
post:
|
|
summary: set enabled websocket trigger
|
|
operationId: setWebsocketTriggerMode
|
|
tags:
|
|
- websocket_trigger
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Path"
|
|
requestBody:
|
|
description: updated websocket trigger enable
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
mode:
|
|
$ref: "#/components/schemas/TriggerMode"
|
|
required:
|
|
- mode
|
|
responses:
|
|
"200":
|
|
description: websocket trigger enabled set
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/websocket_triggers/test:
|
|
post:
|
|
summary: test websocket connection
|
|
operationId: testWebsocketConnection
|
|
tags:
|
|
- websocket_trigger
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
requestBody:
|
|
description: test websocket connection
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
url:
|
|
type: string
|
|
url_runnable_args:
|
|
$ref: "#/components/schemas/ScriptArgs"
|
|
can_return_message:
|
|
type: boolean
|
|
required:
|
|
- url
|
|
- can_return_message
|
|
responses:
|
|
"200":
|
|
description: successfuly connected to websocket
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/kafka_triggers/create:
|
|
post:
|
|
summary: create kafka trigger
|
|
operationId: createKafkaTrigger
|
|
tags:
|
|
- kafka_trigger
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
requestBody:
|
|
description: new kafka trigger
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/NewKafkaTrigger"
|
|
responses:
|
|
"201":
|
|
description: kafka trigger created
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/kafka_triggers/update/{path}:
|
|
post:
|
|
summary: update kafka trigger
|
|
operationId: updateKafkaTrigger
|
|
tags:
|
|
- kafka_trigger
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Path"
|
|
requestBody:
|
|
description: updated trigger
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/EditKafkaTrigger"
|
|
responses:
|
|
"200":
|
|
description: kafka trigger updated
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/kafka_triggers/delete/{path}:
|
|
delete:
|
|
summary: delete kafka trigger
|
|
operationId: deleteKafkaTrigger
|
|
tags:
|
|
- kafka_trigger
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Path"
|
|
responses:
|
|
"200":
|
|
description: kafka trigger deleted
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/kafka_triggers/get/{path}:
|
|
get:
|
|
summary: get kafka trigger
|
|
operationId: getKafkaTrigger
|
|
tags:
|
|
- kafka_trigger
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Path"
|
|
responses:
|
|
"200":
|
|
description: kafka trigger deleted
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/KafkaTrigger"
|
|
|
|
/w/{workspace}/kafka_triggers/list:
|
|
get:
|
|
summary: list kafka triggers
|
|
operationId: listKafkaTriggers
|
|
tags:
|
|
- kafka_trigger
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
required: true
|
|
- $ref: "#/components/parameters/Page"
|
|
- $ref: "#/components/parameters/PerPage"
|
|
- name: path
|
|
description: filter by path
|
|
in: query
|
|
schema:
|
|
type: string
|
|
- name: is_flow
|
|
in: query
|
|
schema:
|
|
type: boolean
|
|
- name: path_start
|
|
in: query
|
|
schema:
|
|
type: string
|
|
- name: label
|
|
in: query
|
|
required: false
|
|
schema:
|
|
type: string
|
|
description: Filter by label
|
|
responses:
|
|
"200":
|
|
description: kafka trigger list
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/KafkaTrigger"
|
|
|
|
/w/{workspace}/kafka_triggers/exists/{path}:
|
|
get:
|
|
summary: does kafka trigger exists
|
|
operationId: existsKafkaTrigger
|
|
tags:
|
|
- kafka_trigger
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Path"
|
|
responses:
|
|
"200":
|
|
description: kafka trigger exists
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: boolean
|
|
|
|
/w/{workspace}/kafka_triggers/setmode/{path}:
|
|
post:
|
|
summary: set enabled kafka trigger
|
|
operationId: setKafkaTriggerMode
|
|
tags:
|
|
- kafka_trigger
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Path"
|
|
requestBody:
|
|
description: updated kafka trigger enable
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
mode:
|
|
$ref: "#/components/schemas/TriggerMode"
|
|
required:
|
|
- mode
|
|
responses:
|
|
"200":
|
|
description: kafka trigger enabled set
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/kafka_triggers/test:
|
|
post:
|
|
summary: test kafka connection
|
|
operationId: testKafkaConnection
|
|
tags:
|
|
- kafka_trigger
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
requestBody:
|
|
description: test kafka connection
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
connection:
|
|
type: object
|
|
required:
|
|
- connection
|
|
responses:
|
|
"200":
|
|
description: successfuly connected to kafka brokers
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/kafka_triggers/reset_offsets/{path}:
|
|
post:
|
|
summary: reset kafka trigger offsets to earliest
|
|
operationId: resetKafkaOffsets
|
|
tags:
|
|
- kafka_trigger
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Path"
|
|
responses:
|
|
"200":
|
|
description: kafka trigger offsets reset successfully
|
|
|
|
/w/{workspace}/kafka_triggers/commit_offsets/{path}:
|
|
post:
|
|
summary: commit kafka offsets for a specific trigger
|
|
operationId: commitKafkaOffsets
|
|
tags:
|
|
- kafka_trigger
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Path"
|
|
requestBody:
|
|
description: offsets to commit
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
topic:
|
|
type: string
|
|
partition:
|
|
type: integer
|
|
format: int32
|
|
offset:
|
|
type: integer
|
|
format: int64
|
|
required:
|
|
- topic
|
|
- partition
|
|
- offset
|
|
responses:
|
|
"200":
|
|
description: kafka offsets committed successfully
|
|
|
|
/w/{workspace}/nats_triggers/create:
|
|
post:
|
|
summary: create nats trigger
|
|
operationId: createNatsTrigger
|
|
tags:
|
|
- nats_trigger
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
requestBody:
|
|
description: new nats trigger
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/NewNatsTrigger"
|
|
responses:
|
|
"201":
|
|
description: nats trigger created
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/nats_triggers/update/{path}:
|
|
post:
|
|
summary: update nats trigger
|
|
operationId: updateNatsTrigger
|
|
tags:
|
|
- nats_trigger
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Path"
|
|
requestBody:
|
|
description: updated trigger
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/EditNatsTrigger"
|
|
responses:
|
|
"200":
|
|
description: nats trigger updated
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/nats_triggers/delete/{path}:
|
|
delete:
|
|
summary: delete nats trigger
|
|
operationId: deleteNatsTrigger
|
|
tags:
|
|
- nats_trigger
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Path"
|
|
responses:
|
|
"200":
|
|
description: nats trigger deleted
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/nats_triggers/get/{path}:
|
|
get:
|
|
summary: get nats trigger
|
|
operationId: getNatsTrigger
|
|
tags:
|
|
- nats_trigger
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Path"
|
|
responses:
|
|
"200":
|
|
description: nats trigger deleted
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/NatsTrigger"
|
|
|
|
/w/{workspace}/nats_triggers/list:
|
|
get:
|
|
summary: list nats triggers
|
|
operationId: listNatsTriggers
|
|
tags:
|
|
- nats_trigger
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
required: true
|
|
- $ref: "#/components/parameters/Page"
|
|
- $ref: "#/components/parameters/PerPage"
|
|
- name: path
|
|
description: filter by path
|
|
in: query
|
|
schema:
|
|
type: string
|
|
- name: is_flow
|
|
in: query
|
|
schema:
|
|
type: boolean
|
|
- name: path_start
|
|
in: query
|
|
schema:
|
|
type: string
|
|
- name: label
|
|
in: query
|
|
required: false
|
|
schema:
|
|
type: string
|
|
description: Filter by label
|
|
responses:
|
|
"200":
|
|
description: nats trigger list
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/NatsTrigger"
|
|
|
|
/w/{workspace}/nats_triggers/exists/{path}:
|
|
get:
|
|
summary: does nats trigger exists
|
|
operationId: existsNatsTrigger
|
|
tags:
|
|
- nats_trigger
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Path"
|
|
responses:
|
|
"200":
|
|
description: nats trigger exists
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: boolean
|
|
|
|
/w/{workspace}/nats_triggers/setmode/{path}:
|
|
post:
|
|
summary: set enabled nats trigger
|
|
operationId: setNatsTriggerMode
|
|
tags:
|
|
- nats_trigger
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Path"
|
|
requestBody:
|
|
description: updated nats trigger enable
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
mode:
|
|
$ref: "#/components/schemas/TriggerMode"
|
|
required:
|
|
- mode
|
|
responses:
|
|
"200":
|
|
description: nats trigger enabled set
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/nats_triggers/test:
|
|
post:
|
|
summary: test NATS connection
|
|
operationId: testNatsConnection
|
|
tags:
|
|
- nats_trigger
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
requestBody:
|
|
description: test nats connection
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
connection:
|
|
type: object
|
|
required:
|
|
- connection
|
|
responses:
|
|
"200":
|
|
description: successfuly connected to NATS servers
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/sqs_triggers/create:
|
|
post:
|
|
summary: create sqs trigger
|
|
operationId: createSqsTrigger
|
|
tags:
|
|
- sqs_trigger
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
requestBody:
|
|
description: new sqs trigger
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/NewSqsTrigger"
|
|
responses:
|
|
"201":
|
|
description: sqs trigger created
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/sqs_triggers/update/{path}:
|
|
post:
|
|
summary: update sqs trigger
|
|
operationId: updateSqsTrigger
|
|
tags:
|
|
- sqs_trigger
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Path"
|
|
requestBody:
|
|
description: updated trigger
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/EditSqsTrigger"
|
|
responses:
|
|
"200":
|
|
description: sqs trigger updated
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/sqs_triggers/delete/{path}:
|
|
delete:
|
|
summary: delete sqs trigger
|
|
operationId: deleteSqsTrigger
|
|
tags:
|
|
- sqs_trigger
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Path"
|
|
responses:
|
|
"200":
|
|
description: sqs trigger deleted
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/sqs_triggers/get/{path}:
|
|
get:
|
|
summary: get sqs trigger
|
|
operationId: getSqsTrigger
|
|
tags:
|
|
- sqs_trigger
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Path"
|
|
responses:
|
|
"200":
|
|
description: sqs trigger deleted
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/SqsTrigger"
|
|
|
|
/w/{workspace}/sqs_triggers/list:
|
|
get:
|
|
summary: list sqs triggers
|
|
operationId: listSqsTriggers
|
|
tags:
|
|
- sqs_trigger
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
required: true
|
|
- $ref: "#/components/parameters/Page"
|
|
- $ref: "#/components/parameters/PerPage"
|
|
- name: path
|
|
description: filter by path
|
|
in: query
|
|
schema:
|
|
type: string
|
|
- name: is_flow
|
|
in: query
|
|
schema:
|
|
type: boolean
|
|
- name: path_start
|
|
in: query
|
|
schema:
|
|
type: string
|
|
- name: label
|
|
in: query
|
|
required: false
|
|
schema:
|
|
type: string
|
|
description: Filter by label
|
|
responses:
|
|
"200":
|
|
description: sqs trigger list
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/SqsTrigger"
|
|
|
|
/w/{workspace}/sqs_triggers/exists/{path}:
|
|
get:
|
|
summary: does sqs trigger exists
|
|
operationId: existsSqsTrigger
|
|
tags:
|
|
- sqs_trigger
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Path"
|
|
responses:
|
|
"200":
|
|
description: sqs trigger exists
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: boolean
|
|
|
|
/w/{workspace}/sqs_triggers/setmode/{path}:
|
|
post:
|
|
summary: set enabled sqs trigger
|
|
operationId: setSqsTriggerMode
|
|
tags:
|
|
- sqs_trigger
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Path"
|
|
requestBody:
|
|
description: updated sqs trigger enable
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
mode:
|
|
$ref: "#/components/schemas/TriggerMode"
|
|
required:
|
|
- mode
|
|
responses:
|
|
"200":
|
|
description: sqs trigger enabled set
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/sqs_triggers/test:
|
|
post:
|
|
summary: test sqs connection
|
|
operationId: testSqsConnection
|
|
tags:
|
|
- sqs_trigger
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
requestBody:
|
|
description: test sqs connection
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
connection:
|
|
type: object
|
|
required:
|
|
- connection
|
|
responses:
|
|
"200":
|
|
description: successfuly connected to sqs
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/native_triggers/integrations/list:
|
|
get:
|
|
summary: list available native trigger services
|
|
operationId: listNativeTriggerServices
|
|
tags:
|
|
- workspace_integration
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
responses:
|
|
"200":
|
|
description: native trigger services list
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/WorkspaceIntegrations"
|
|
|
|
/w/{workspace}/native_triggers/integrations/{service_name}/exists:
|
|
get:
|
|
summary: check if integrations for a particular service exists
|
|
operationId: checkIfNativeTriggersServiceExists
|
|
tags:
|
|
- workspace_integration
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- name: service_name
|
|
in: path
|
|
required: true
|
|
schema:
|
|
$ref: "#/components/schemas/NativeServiceName"
|
|
responses:
|
|
"200":
|
|
description: integration exists
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: boolean
|
|
|
|
/w/{workspace}/native_triggers/integrations/{service_name}/create:
|
|
post:
|
|
summary: create native trigger service
|
|
operationId: createNativeTriggerService
|
|
tags:
|
|
- workspace_integration
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- name: service_name
|
|
in: path
|
|
required: true
|
|
schema:
|
|
$ref: "#/components/schemas/NativeServiceName"
|
|
requestBody:
|
|
description: new native trigger service
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/WorkspaceOAuthConfig"
|
|
responses:
|
|
"201":
|
|
description: native trigger service created
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/native_triggers/integrations/{service_name}/generate_connect_url:
|
|
post:
|
|
summary: generate connect url for native trigger service
|
|
operationId: generateNativeTriggerServiceConnectUrl
|
|
tags:
|
|
- workspace_integration
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- name: service_name
|
|
in: path
|
|
required: true
|
|
schema:
|
|
$ref: "#/components/schemas/NativeServiceName"
|
|
requestBody:
|
|
description: redirect_uri
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/RedirectUri"
|
|
responses:
|
|
"200":
|
|
description: native trigger service connect url
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/native_triggers/integrations/{service_name}/instance_sharing_available:
|
|
get:
|
|
summary: check if instance-level credential sharing is available for a service
|
|
operationId: checkInstanceSharingAvailable
|
|
tags:
|
|
- workspace_integration
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- name: service_name
|
|
in: path
|
|
required: true
|
|
schema:
|
|
$ref: "#/components/schemas/NativeServiceName"
|
|
responses:
|
|
"200":
|
|
description: whether instance sharing is available
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: boolean
|
|
|
|
/w/{workspace}/native_triggers/integrations/{service_name}/generate_instance_connect_url:
|
|
post:
|
|
summary: generate connect url using instance-level credentials
|
|
operationId: generateInstanceConnectUrl
|
|
tags:
|
|
- workspace_integration
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- name: service_name
|
|
in: path
|
|
required: true
|
|
schema:
|
|
$ref: "#/components/schemas/NativeServiceName"
|
|
requestBody:
|
|
description: redirect_uri
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/RedirectUri"
|
|
responses:
|
|
"200":
|
|
description: authorization URL using instance credentials
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/native_triggers/integrations/{service_name}/delete:
|
|
delete:
|
|
summary: delete native trigger service
|
|
operationId: deleteNativeTriggerService
|
|
tags:
|
|
- workspace_integration
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- name: service_name
|
|
in: path
|
|
required: true
|
|
schema:
|
|
$ref: "#/components/schemas/NativeServiceName"
|
|
responses:
|
|
"200":
|
|
description: native trigger service deleted
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/native_triggers/integrations/{service_name}/callback:
|
|
post:
|
|
summary: native trigger service oauth callback
|
|
operationId: nativeTriggerServiceCallback
|
|
tags:
|
|
- workspace_integration
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- name: service_name
|
|
in: path
|
|
required: true
|
|
schema:
|
|
$ref: "#/components/schemas/NativeServiceName"
|
|
requestBody:
|
|
description: OAuth callback data
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
code:
|
|
type: string
|
|
state:
|
|
type: string
|
|
redirect_uri:
|
|
type: string
|
|
resource_path:
|
|
type: string
|
|
required:
|
|
- code
|
|
- state
|
|
- redirect_uri
|
|
responses:
|
|
"200":
|
|
description: native trigger service oauth completed
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/native_triggers/{service_name}/create:
|
|
post:
|
|
summary: create native trigger
|
|
description: |
|
|
Creates a new native trigger for the specified service.
|
|
Requires write access to the script or flow that the trigger will be associated with.
|
|
operationId: createNativeTrigger
|
|
tags:
|
|
- native_trigger
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- name: service_name
|
|
in: path
|
|
required: true
|
|
schema:
|
|
$ref: "#/components/schemas/NativeServiceName"
|
|
requestBody:
|
|
description: new native trigger configuration
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/NativeTriggerData"
|
|
responses:
|
|
"201":
|
|
description: native trigger created
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/CreateTriggerResponse"
|
|
|
|
/w/{workspace}/native_triggers/{service_name}/update/{external_id}:
|
|
post:
|
|
summary: update native trigger
|
|
description: |
|
|
Updates an existing native trigger.
|
|
Requires write access to the script or flow that the trigger is associated with.
|
|
operationId: updateNativeTrigger
|
|
tags:
|
|
- native_trigger
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- name: service_name
|
|
in: path
|
|
required: true
|
|
schema:
|
|
$ref: "#/components/schemas/NativeServiceName"
|
|
- name: external_id
|
|
in: path
|
|
required: true
|
|
description: The external ID of the trigger from the external service
|
|
schema:
|
|
type: string
|
|
requestBody:
|
|
description: updated native trigger configuration
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/NativeTriggerData"
|
|
responses:
|
|
"200":
|
|
description: native trigger updated
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/native_triggers/{service_name}/get/{external_id}:
|
|
get:
|
|
summary: get native trigger
|
|
description: |
|
|
Retrieves a native trigger by its external ID.
|
|
Requires write access to the script or flow that the trigger is associated with.
|
|
operationId: getNativeTrigger
|
|
tags:
|
|
- native_trigger
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- name: service_name
|
|
in: path
|
|
required: true
|
|
schema:
|
|
$ref: "#/components/schemas/NativeServiceName"
|
|
- name: external_id
|
|
in: path
|
|
required: true
|
|
description: The external ID of the trigger from the external service
|
|
schema:
|
|
type: string
|
|
responses:
|
|
"200":
|
|
description: native trigger with external configuration
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/NativeTriggerWithExternal"
|
|
|
|
/w/{workspace}/native_triggers/{service_name}/delete/{external_id}:
|
|
delete:
|
|
summary: delete native trigger
|
|
description: |
|
|
Deletes a native trigger by its external ID.
|
|
Requires write access to the script or flow that the trigger is associated with.
|
|
operationId: deleteNativeTrigger
|
|
tags:
|
|
- native_trigger
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- name: service_name
|
|
in: path
|
|
required: true
|
|
schema:
|
|
$ref: "#/components/schemas/NativeServiceName"
|
|
- name: external_id
|
|
in: path
|
|
required: true
|
|
description: The external ID of the trigger from the external service
|
|
schema:
|
|
type: string
|
|
responses:
|
|
"200":
|
|
description: native trigger deleted
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/native_triggers/{service_name}/list:
|
|
get:
|
|
summary: list native triggers
|
|
description: Lists all native triggers for the specified service in the workspace.
|
|
operationId: listNativeTriggers
|
|
tags:
|
|
- native_trigger
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- name: service_name
|
|
in: path
|
|
required: true
|
|
schema:
|
|
$ref: "#/components/schemas/NativeServiceName"
|
|
- $ref: "#/components/parameters/Page"
|
|
- $ref: "#/components/parameters/PerPage"
|
|
- name: path
|
|
description: filter by script path
|
|
in: query
|
|
schema:
|
|
type: string
|
|
- name: is_flow
|
|
description: filter by is_flow
|
|
in: query
|
|
schema:
|
|
type: boolean
|
|
- name: label
|
|
in: query
|
|
required: false
|
|
schema:
|
|
type: string
|
|
description: Filter by label
|
|
responses:
|
|
"200":
|
|
description: native triggers list
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/NativeTrigger"
|
|
|
|
/w/{workspace}/native_triggers/{service_name}/exists/{external_id}:
|
|
get:
|
|
summary: check if native trigger exists
|
|
description: Checks if a native trigger with the given external ID exists.
|
|
operationId: existsNativeTrigger
|
|
tags:
|
|
- native_trigger
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- name: service_name
|
|
in: path
|
|
required: true
|
|
schema:
|
|
$ref: "#/components/schemas/NativeServiceName"
|
|
- name: external_id
|
|
in: path
|
|
required: true
|
|
description: The external ID of the trigger from the external service
|
|
schema:
|
|
type: string
|
|
responses:
|
|
"200":
|
|
description: whether the native trigger exists
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: boolean
|
|
|
|
/w/{workspace}/native_triggers/{service_name}/sync:
|
|
post:
|
|
summary: sync native triggers with external service
|
|
operationId: syncNativeTriggers
|
|
tags:
|
|
- native_trigger
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- name: service_name
|
|
in: path
|
|
required: true
|
|
schema:
|
|
$ref: "#/components/schemas/NativeServiceName"
|
|
responses:
|
|
"200":
|
|
description: sync completed successfully
|
|
|
|
/w/{workspace}/native_triggers/nextcloud/events:
|
|
get:
|
|
summary: list available NextCloud events
|
|
operationId: listNextCloudEvents
|
|
tags:
|
|
- native_trigger
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
responses:
|
|
"200":
|
|
description: list of available NextCloud events
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/NextCloudEventType"
|
|
|
|
/w/{workspace}/native_triggers/google/calendars:
|
|
get:
|
|
summary: list Google Calendars for the authenticated user
|
|
operationId: listGoogleCalendars
|
|
tags:
|
|
- native_trigger
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
responses:
|
|
"200":
|
|
description: list of Google Calendars
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/GoogleCalendarEntry"
|
|
|
|
/w/{workspace}/native_triggers/google/drive/files:
|
|
get:
|
|
summary: list or search Google Drive files
|
|
operationId: listGoogleDriveFiles
|
|
tags:
|
|
- native_trigger
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
- name: q
|
|
in: query
|
|
description: search query to filter files by name
|
|
schema:
|
|
type: string
|
|
- name: parent_id
|
|
in: query
|
|
description: folder ID to list children of
|
|
schema:
|
|
type: string
|
|
- name: page_token
|
|
in: query
|
|
description: token for next page of results
|
|
schema:
|
|
type: string
|
|
- name: shared_with_me
|
|
in: query
|
|
description: if true, list files shared with the user
|
|
schema:
|
|
type: boolean
|
|
default: false
|
|
responses:
|
|
"200":
|
|
description: list of Google Drive files
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/GoogleDriveFilesResponse"
|
|
|
|
/w/{workspace}/native_triggers/google/drive/shared_drives:
|
|
get:
|
|
summary: list shared drives accessible to the user
|
|
operationId: listGoogleSharedDrives
|
|
tags:
|
|
- native_trigger
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
responses:
|
|
"200":
|
|
description: list of shared drives
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/SharedDriveEntry"
|
|
|
|
/native_triggers/{service_name}/w/{workspace_id}/webhook/{internal_id}:
|
|
post:
|
|
summary: receive webhook from external native trigger service
|
|
operationId: nativeTriggerWebhook
|
|
tags:
|
|
- native_trigger
|
|
parameters:
|
|
- name: service_name
|
|
in: path
|
|
required: true
|
|
schema:
|
|
$ref: "#/components/schemas/NativeServiceName"
|
|
- name: workspace_id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
- name: internal_id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: integer
|
|
format: int64
|
|
description: The internal database ID of the trigger
|
|
requestBody:
|
|
description: webhook payload from external service
|
|
required: false
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
additionalProperties: true
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
responses:
|
|
"200":
|
|
description: webhook received successfully
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/mqtt_triggers/create:
|
|
post:
|
|
summary: create mqtt trigger
|
|
operationId: createMqttTrigger
|
|
tags:
|
|
- mqtt_trigger
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
requestBody:
|
|
description: new mqtt trigger
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/NewMqttTrigger"
|
|
responses:
|
|
"201":
|
|
description: mqtt trigger created
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/mqtt_triggers/update/{path}:
|
|
post:
|
|
summary: update mqtt trigger
|
|
operationId: updateMqttTrigger
|
|
tags:
|
|
- mqtt_trigger
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Path"
|
|
requestBody:
|
|
description: updated trigger
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/EditMqttTrigger"
|
|
responses:
|
|
"200":
|
|
description: mqtt trigger updated
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/mqtt_triggers/delete/{path}:
|
|
delete:
|
|
summary: delete mqtt trigger
|
|
operationId: deleteMqttTrigger
|
|
tags:
|
|
- mqtt_trigger
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Path"
|
|
responses:
|
|
"200":
|
|
description: mqtt trigger deleted
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/mqtt_triggers/get/{path}:
|
|
get:
|
|
summary: get mqtt trigger
|
|
operationId: getMqttTrigger
|
|
tags:
|
|
- mqtt_trigger
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Path"
|
|
responses:
|
|
"200":
|
|
description: mqtt trigger deleted
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/MqttTrigger"
|
|
|
|
/w/{workspace}/mqtt_triggers/list:
|
|
get:
|
|
summary: list mqtt triggers
|
|
operationId: listMqttTriggers
|
|
tags:
|
|
- mqtt_trigger
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
required: true
|
|
- $ref: "#/components/parameters/Page"
|
|
- $ref: "#/components/parameters/PerPage"
|
|
- name: path
|
|
description: filter by path
|
|
in: query
|
|
schema:
|
|
type: string
|
|
- name: is_flow
|
|
in: query
|
|
schema:
|
|
type: boolean
|
|
- name: path_start
|
|
in: query
|
|
schema:
|
|
type: string
|
|
- name: label
|
|
in: query
|
|
required: false
|
|
schema:
|
|
type: string
|
|
description: Filter by label
|
|
responses:
|
|
"200":
|
|
description: mqtt trigger list
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/MqttTrigger"
|
|
|
|
/w/{workspace}/mqtt_triggers/exists/{path}:
|
|
get:
|
|
summary: does mqtt trigger exists
|
|
operationId: existsMqttTrigger
|
|
tags:
|
|
- mqtt_trigger
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Path"
|
|
responses:
|
|
"200":
|
|
description: mqtt trigger exists
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: boolean
|
|
|
|
/w/{workspace}/mqtt_triggers/setmode/{path}:
|
|
post:
|
|
summary: set enabled mqtt trigger
|
|
operationId: setMqttTriggerMode
|
|
tags:
|
|
- mqtt_trigger
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Path"
|
|
requestBody:
|
|
description: updated mqtt trigger enable
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
mode:
|
|
$ref: "#/components/schemas/TriggerMode"
|
|
required:
|
|
- mode
|
|
responses:
|
|
"200":
|
|
description: mqtt trigger enabled set
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/mqtt_triggers/test:
|
|
post:
|
|
summary: test mqtt connection
|
|
operationId: testMqttConnection
|
|
tags:
|
|
- mqtt_trigger
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
requestBody:
|
|
description: test mqtt connection
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
connection:
|
|
type: object
|
|
required:
|
|
- connection
|
|
responses:
|
|
"200":
|
|
description: successfully connected to mqtt
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/gcp_triggers/create:
|
|
post:
|
|
summary: create gcp trigger
|
|
operationId: createGcpTrigger
|
|
tags:
|
|
- gcp_trigger
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
requestBody:
|
|
description: new gcp trigger
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/GcpTriggerData"
|
|
responses:
|
|
"201":
|
|
description: gcp trigger created
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/gcp_triggers/update/{path}:
|
|
post:
|
|
summary: update gcp trigger
|
|
operationId: updateGcpTrigger
|
|
tags:
|
|
- gcp_trigger
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Path"
|
|
requestBody:
|
|
description: updated trigger
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/GcpTriggerData"
|
|
responses:
|
|
"200":
|
|
description: gcp trigger updated
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/gcp_triggers/delete/{path}:
|
|
delete:
|
|
summary: delete gcp trigger
|
|
operationId: deleteGcpTrigger
|
|
tags:
|
|
- gcp_trigger
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Path"
|
|
responses:
|
|
"200":
|
|
description: gcp trigger deleted
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/gcp_triggers/get/{path}:
|
|
get:
|
|
summary: get gcp trigger
|
|
operationId: getGcpTrigger
|
|
tags:
|
|
- gcp_trigger
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Path"
|
|
responses:
|
|
"200":
|
|
description: gcp trigger deleted
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/GcpTrigger"
|
|
|
|
/w/{workspace}/gcp_triggers/list:
|
|
get:
|
|
summary: list gcp triggers
|
|
operationId: listGcpTriggers
|
|
tags:
|
|
- gcp_trigger
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
required: true
|
|
- $ref: "#/components/parameters/Page"
|
|
- $ref: "#/components/parameters/PerPage"
|
|
- name: path
|
|
description: filter by path
|
|
in: query
|
|
schema:
|
|
type: string
|
|
- name: is_flow
|
|
in: query
|
|
schema:
|
|
type: boolean
|
|
- name: path_start
|
|
in: query
|
|
schema:
|
|
type: string
|
|
- name: label
|
|
in: query
|
|
required: false
|
|
schema:
|
|
type: string
|
|
description: Filter by label
|
|
responses:
|
|
"200":
|
|
description: gcp trigger list
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/GcpTrigger"
|
|
|
|
/w/{workspace}/gcp_triggers/exists/{path}:
|
|
get:
|
|
summary: does gcp trigger exists
|
|
operationId: existsGcpTrigger
|
|
tags:
|
|
- gcp_trigger
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Path"
|
|
responses:
|
|
"200":
|
|
description: gcp trigger exists
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: boolean
|
|
|
|
/w/{workspace}/gcp_triggers/setmode/{path}:
|
|
post:
|
|
summary: set enabled gcp trigger
|
|
operationId: setGcpTriggerMode
|
|
tags:
|
|
- gcp_trigger
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Path"
|
|
requestBody:
|
|
description: updated gcp trigger enable
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
mode:
|
|
$ref: "#/components/schemas/TriggerMode"
|
|
required:
|
|
- mode
|
|
responses:
|
|
"200":
|
|
description: gcp trigger enabled set
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/gcp_triggers/test:
|
|
post:
|
|
summary: test gcp connection
|
|
operationId: testGcpConnection
|
|
tags:
|
|
- gcp_trigger
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
requestBody:
|
|
description: test gcp connection
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
connection:
|
|
type: object
|
|
required:
|
|
- connection
|
|
responses:
|
|
"200":
|
|
description: try to connect to a gcp broker
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/gcp_triggers/subscriptions/delete/{path}:
|
|
delete:
|
|
summary: delete gcp trigger
|
|
operationId: deleteGcpSubscription
|
|
tags:
|
|
- gcp_trigger
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Path"
|
|
requestBody:
|
|
description: args to delete subscription from google cloud
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/DeleteGcpSubscription"
|
|
responses:
|
|
"200":
|
|
description: gcp trigger deleted
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/gcp_triggers/topics/list/{path}:
|
|
get:
|
|
summary: list all topics of google cloud service
|
|
operationId: listGoogleTopics
|
|
tags:
|
|
- gcp_trigger
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Path"
|
|
responses:
|
|
"200":
|
|
description: get all google topics
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
type: string
|
|
|
|
/w/{workspace}/gcp_triggers/subscriptions/list/{path}:
|
|
post:
|
|
summary: list all subscription of a give topic from google cloud service
|
|
operationId: listAllTGoogleTopicSubscriptions
|
|
tags:
|
|
- gcp_trigger
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Path"
|
|
requestBody:
|
|
description: args to get subscription's topic from google cloud
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/GetAllTopicSubscription"
|
|
responses:
|
|
"200":
|
|
description: get all google topic subscriptions name
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
type: string
|
|
|
|
/w/{workspace}/postgres_triggers/postgres/version/{path}:
|
|
get:
|
|
summary: get postgres version
|
|
operationId: getPostgresVersion
|
|
tags:
|
|
- postgres_trigger
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Path"
|
|
responses:
|
|
"200":
|
|
description: postgres version
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/postgres_triggers/is_valid_postgres_configuration/{path}:
|
|
get:
|
|
summary: check if postgres configuration is set to logical
|
|
operationId: isValidPostgresConfiguration
|
|
tags:
|
|
- postgres_trigger
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Path"
|
|
responses:
|
|
"200":
|
|
description: boolean that indicates if postgres is set to logical level or not
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: boolean
|
|
|
|
/w/{workspace}/postgres_triggers/create_template_script:
|
|
post:
|
|
summary: create template script
|
|
operationId: createTemplateScript
|
|
tags:
|
|
- postgres_trigger
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
requestBody:
|
|
description: template script
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/TemplateScript"
|
|
responses:
|
|
"200":
|
|
description: custom id to retrieve template script
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/postgres_triggers/get_template_script/{id}:
|
|
get:
|
|
summary: get template script
|
|
operationId: getTemplateScript
|
|
tags:
|
|
- postgres_trigger
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Id"
|
|
responses:
|
|
"200":
|
|
description: template script
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/postgres_triggers/slot/list/{path}:
|
|
get:
|
|
summary: list postgres replication slot
|
|
operationId: listPostgresReplicationSlot
|
|
tags:
|
|
- postgres_trigger
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Path"
|
|
responses:
|
|
"200":
|
|
description: list postgres slot
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/SlotList"
|
|
|
|
/w/{workspace}/postgres_triggers/slot/create/{path}:
|
|
post:
|
|
summary: create replication slot for postgres
|
|
operationId: createPostgresReplicationSlot
|
|
tags:
|
|
- postgres_trigger
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Path"
|
|
requestBody:
|
|
description: new slot for postgres
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/Slot"
|
|
responses:
|
|
"201":
|
|
description: slot created
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/postgres_triggers/slot/delete/{path}:
|
|
delete:
|
|
summary: delete postgres replication slot
|
|
operationId: deletePostgresReplicationSlot
|
|
tags:
|
|
- postgres_trigger
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Path"
|
|
requestBody:
|
|
description: replication slot of postgres
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/Slot"
|
|
responses:
|
|
"200":
|
|
description: postgres replication slot deleted
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/postgres_triggers/publication/list/{path}:
|
|
get:
|
|
summary: list postgres publication
|
|
operationId: listPostgresPublication
|
|
tags:
|
|
- postgres_trigger
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Path"
|
|
responses:
|
|
"200":
|
|
description: database publication list
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
type: string
|
|
|
|
/w/{workspace}/postgres_triggers/publication/get/{publication}/{path}:
|
|
get:
|
|
summary: get postgres publication
|
|
operationId: getPostgresPublication
|
|
tags:
|
|
- postgres_trigger
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Path"
|
|
- $ref: "#/components/parameters/PublicationName"
|
|
responses:
|
|
"200":
|
|
description: postgres publication get
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/PublicationData"
|
|
|
|
/w/{workspace}/postgres_triggers/publication/create/{publication}/{path}:
|
|
post:
|
|
summary: create publication for postgres
|
|
operationId: createPostgresPublication
|
|
tags:
|
|
- postgres_trigger
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Path"
|
|
- $ref: "#/components/parameters/PublicationName"
|
|
requestBody:
|
|
description: new publication for postgres
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/PublicationData"
|
|
responses:
|
|
"201":
|
|
description: publication created
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/postgres_triggers/publication/update/{publication}/{path}:
|
|
post:
|
|
summary: update publication for postgres
|
|
operationId: updatePostgresPublication
|
|
tags:
|
|
- postgres_trigger
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Path"
|
|
- $ref: "#/components/parameters/PublicationName"
|
|
requestBody:
|
|
description: update publication for postgres
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/PublicationData"
|
|
responses:
|
|
"201":
|
|
description: publication updated
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/postgres_triggers/publication/delete/{publication}/{path}:
|
|
delete:
|
|
summary: delete postgres publication
|
|
operationId: deletePostgresPublication
|
|
tags:
|
|
- postgres_trigger
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Path"
|
|
- $ref: "#/components/parameters/PublicationName"
|
|
responses:
|
|
"200":
|
|
description: postgres publication deleted
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/postgres_triggers/create:
|
|
post:
|
|
summary: create postgres trigger
|
|
operationId: createPostgresTrigger
|
|
tags:
|
|
- postgres_trigger
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
requestBody:
|
|
description: new postgres trigger
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/NewPostgresTrigger"
|
|
responses:
|
|
"201":
|
|
description: postgres trigger created
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/postgres_triggers/update/{path}:
|
|
post:
|
|
summary: update postgres trigger
|
|
operationId: updatePostgresTrigger
|
|
tags:
|
|
- postgres_trigger
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Path"
|
|
requestBody:
|
|
description: updated trigger
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/EditPostgresTrigger"
|
|
responses:
|
|
"200":
|
|
description: postgres trigger updated
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/postgres_triggers/delete/{path}:
|
|
delete:
|
|
summary: delete postgres trigger
|
|
operationId: deletePostgresTrigger
|
|
tags:
|
|
- postgres_trigger
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Path"
|
|
responses:
|
|
"200":
|
|
description: postgres trigger deleted
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/postgres_triggers/get/{path}:
|
|
get:
|
|
summary: get postgres trigger
|
|
operationId: getPostgresTrigger
|
|
tags:
|
|
- postgres_trigger
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Path"
|
|
responses:
|
|
"200":
|
|
description: get postgres trigger
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/PostgresTrigger"
|
|
|
|
/w/{workspace}/postgres_triggers/list:
|
|
get:
|
|
summary: list postgres triggers
|
|
operationId: listPostgresTriggers
|
|
tags:
|
|
- postgres_trigger
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
required: true
|
|
- $ref: "#/components/parameters/Page"
|
|
- $ref: "#/components/parameters/PerPage"
|
|
- name: path
|
|
description: filter by path
|
|
in: query
|
|
schema:
|
|
type: string
|
|
- name: is_flow
|
|
in: query
|
|
schema:
|
|
type: boolean
|
|
- name: path_start
|
|
in: query
|
|
schema:
|
|
type: string
|
|
- name: label
|
|
in: query
|
|
required: false
|
|
schema:
|
|
type: string
|
|
description: Filter by label
|
|
responses:
|
|
"200":
|
|
description: postgres trigger list
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/PostgresTrigger"
|
|
|
|
/w/{workspace}/postgres_triggers/exists/{path}:
|
|
get:
|
|
summary: does postgres trigger exists
|
|
operationId: existsPostgresTrigger
|
|
tags:
|
|
- postgres_trigger
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Path"
|
|
responses:
|
|
"200":
|
|
description: postgres trigger exists
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: boolean
|
|
|
|
/w/{workspace}/postgres_triggers/setmode/{path}:
|
|
post:
|
|
summary: set enabled postgres trigger
|
|
operationId: setPostgresTriggerMode
|
|
tags:
|
|
- postgres_trigger
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Path"
|
|
requestBody:
|
|
description: updated postgres trigger enable
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
mode:
|
|
$ref: "#/components/schemas/TriggerMode"
|
|
required:
|
|
- mode
|
|
responses:
|
|
"200":
|
|
description: postgres trigger enabled set
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/postgres_triggers/test:
|
|
post:
|
|
summary: test postgres connection
|
|
operationId: testPostgresConnection
|
|
tags:
|
|
- postgres_trigger
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
requestBody:
|
|
description: test postgres connection
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
database:
|
|
type: string
|
|
required:
|
|
- database
|
|
responses:
|
|
"200":
|
|
description: successfuly connected to postgres
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/email_triggers/create:
|
|
post:
|
|
summary: create email trigger
|
|
operationId: createEmailTrigger
|
|
tags:
|
|
- email_trigger
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
requestBody:
|
|
description: new email trigger
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/NewEmailTrigger"
|
|
responses:
|
|
"201":
|
|
description: email trigger created
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/email_triggers/update/{path}:
|
|
post:
|
|
summary: update email trigger
|
|
operationId: updateEmailTrigger
|
|
tags:
|
|
- email_trigger
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Path"
|
|
requestBody:
|
|
description: updated trigger
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/EditEmailTrigger"
|
|
responses:
|
|
"200":
|
|
description: email trigger updated
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/email_triggers/delete/{path}:
|
|
delete:
|
|
summary: delete email trigger
|
|
operationId: deleteEmailTrigger
|
|
tags:
|
|
- email_trigger
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Path"
|
|
responses:
|
|
"200":
|
|
description: email trigger deleted
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/email_triggers/get/{path}:
|
|
get:
|
|
summary: get email trigger
|
|
operationId: getEmailTrigger
|
|
tags:
|
|
- email_trigger
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Path"
|
|
responses:
|
|
"200":
|
|
description: email trigger retrieved
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/EmailTrigger"
|
|
|
|
/w/{workspace}/email_triggers/list:
|
|
get:
|
|
summary: list email triggers
|
|
operationId: listEmailTriggers
|
|
tags:
|
|
- email_trigger
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
required: true
|
|
- $ref: "#/components/parameters/Page"
|
|
- $ref: "#/components/parameters/PerPage"
|
|
- name: path
|
|
description: filter by path
|
|
in: query
|
|
schema:
|
|
type: string
|
|
- name: is_flow
|
|
in: query
|
|
schema:
|
|
type: boolean
|
|
- name: path_start
|
|
in: query
|
|
schema:
|
|
type: string
|
|
- name: label
|
|
in: query
|
|
required: false
|
|
schema:
|
|
type: string
|
|
description: Filter by label
|
|
responses:
|
|
"200":
|
|
description: email trigger list
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/EmailTrigger"
|
|
|
|
/w/{workspace}/email_triggers/exists/{path}:
|
|
get:
|
|
summary: does email trigger exists
|
|
operationId: existsEmailTrigger
|
|
tags:
|
|
- email_trigger
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Path"
|
|
responses:
|
|
"200":
|
|
description: email trigger exists
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: boolean
|
|
|
|
/w/{workspace}/email_triggers/local_part_exists:
|
|
post:
|
|
summary: does email local part exists
|
|
operationId: existsEmailLocalPart
|
|
tags:
|
|
- email_trigger
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
requestBody:
|
|
description: email local part exists request
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
local_part:
|
|
type: string
|
|
workspaced_local_part:
|
|
type: boolean
|
|
trigger_path:
|
|
type: string
|
|
|
|
required:
|
|
- local_part
|
|
responses:
|
|
"200":
|
|
description: email local part exists
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: boolean
|
|
/w/{workspace}/email_triggers/setmode/{path}:
|
|
post:
|
|
summary: enable/disable email trigger
|
|
operationId: setEmailTriggerMode
|
|
tags:
|
|
- email_trigger
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Path"
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
mode:
|
|
$ref: "#/components/schemas/TriggerMode"
|
|
required:
|
|
- mode
|
|
responses:
|
|
"200":
|
|
description: email trigger enable/disable
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/groups/list:
|
|
get:
|
|
summary: list instance groups
|
|
operationId: listInstanceGroups
|
|
tags:
|
|
- group
|
|
responses:
|
|
"200":
|
|
description: instance group list
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/InstanceGroup"
|
|
/groups/list_with_workspaces:
|
|
get:
|
|
summary: list instance groups with workspace information
|
|
operationId: listInstanceGroupsWithWorkspaces
|
|
tags:
|
|
- group
|
|
responses:
|
|
"200":
|
|
description: instance group list with workspaces
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/InstanceGroupWithWorkspaces"
|
|
|
|
/groups/get/{name}:
|
|
get:
|
|
summary: get instance group
|
|
operationId: getInstanceGroup
|
|
tags:
|
|
- group
|
|
parameters:
|
|
- $ref: "#/components/parameters/Name"
|
|
responses:
|
|
"200":
|
|
description: instance group
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/InstanceGroupWithWorkspaces"
|
|
|
|
/groups/create:
|
|
post:
|
|
summary: create instance group
|
|
operationId: createInstanceGroup
|
|
tags:
|
|
- group
|
|
requestBody:
|
|
description: create instance group
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
name:
|
|
type: string
|
|
summary:
|
|
type: string
|
|
required:
|
|
- name
|
|
responses:
|
|
"200":
|
|
description: instance group created
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/groups/update/{name}:
|
|
post:
|
|
summary: update instance group
|
|
operationId: updateInstanceGroup
|
|
tags:
|
|
- group
|
|
parameters:
|
|
- $ref: "#/components/parameters/Name"
|
|
requestBody:
|
|
description: update instance group
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
new_summary:
|
|
type: string
|
|
instance_role:
|
|
type: string
|
|
nullable: true
|
|
description: "Instance-level role for group members. 'superadmin', 'devops', 'user' or empty to clear."
|
|
required:
|
|
- new_summary
|
|
responses:
|
|
"200":
|
|
description: instance group updated
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/groups/delete/{name}:
|
|
delete:
|
|
summary: delete instance group
|
|
operationId: deleteInstanceGroup
|
|
tags:
|
|
- group
|
|
parameters:
|
|
- $ref: "#/components/parameters/Name"
|
|
responses:
|
|
"200":
|
|
description: instance group deleted
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/groups/adduser/{name}:
|
|
post:
|
|
summary: add user to instance group
|
|
operationId: addUserToInstanceGroup
|
|
tags:
|
|
- group
|
|
parameters:
|
|
- $ref: "#/components/parameters/Name"
|
|
requestBody:
|
|
description: user to add to instance group
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
email:
|
|
type: string
|
|
required:
|
|
- email
|
|
responses:
|
|
"200":
|
|
description: user added to instance group
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/groups/removeuser/{name}:
|
|
post:
|
|
summary: remove user from instance group
|
|
operationId: removeUserFromInstanceGroup
|
|
tags:
|
|
- group
|
|
parameters:
|
|
- $ref: "#/components/parameters/Name"
|
|
requestBody:
|
|
description: user to remove from instance group
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
email:
|
|
type: string
|
|
required:
|
|
- email
|
|
responses:
|
|
"200":
|
|
description: user removed from instance group
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
/groups/export:
|
|
get:
|
|
summary: export instance groups
|
|
operationId: exportInstanceGroups
|
|
tags:
|
|
- group
|
|
responses:
|
|
"200":
|
|
description: exported instance groups
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/ExportedInstanceGroup"
|
|
|
|
/groups/overwrite:
|
|
post:
|
|
summary: overwrite instance groups
|
|
operationId: overwriteInstanceGroups
|
|
tags:
|
|
- group
|
|
requestBody:
|
|
description: overwrite instance groups
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/ExportedInstanceGroup"
|
|
responses:
|
|
"200":
|
|
description: success message
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/groups/list:
|
|
get:
|
|
summary: list groups
|
|
operationId: listGroups
|
|
tags:
|
|
- group
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Page"
|
|
- $ref: "#/components/parameters/PerPage"
|
|
responses:
|
|
"200":
|
|
description: group list
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/Group"
|
|
|
|
/w/{workspace}/groups/listnames:
|
|
get:
|
|
summary: list group names
|
|
operationId: listGroupNames
|
|
tags:
|
|
- group
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- name: only_member_of
|
|
in: query
|
|
description: only list the groups the user is member of (default false)
|
|
schema:
|
|
type: boolean
|
|
responses:
|
|
"200":
|
|
description: group list
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
type: string
|
|
|
|
/w/{workspace}/groups/create:
|
|
post:
|
|
summary: create group
|
|
operationId: createGroup
|
|
tags:
|
|
- group
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
requestBody:
|
|
description: create group
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
name:
|
|
type: string
|
|
summary:
|
|
type: string
|
|
required:
|
|
- name
|
|
responses:
|
|
"200":
|
|
description: group created
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/groups/update/{name}:
|
|
post:
|
|
summary: update group
|
|
operationId: updateGroup
|
|
tags:
|
|
- group
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Name"
|
|
requestBody:
|
|
description: updated group
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
summary:
|
|
type: string
|
|
responses:
|
|
"200":
|
|
description: group updated
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/groups/delete/{name}:
|
|
delete:
|
|
summary: delete group
|
|
operationId: deleteGroup
|
|
tags:
|
|
- group
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Name"
|
|
responses:
|
|
"200":
|
|
description: group deleted
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/groups/get/{name}:
|
|
get:
|
|
summary: get group
|
|
operationId: getGroup
|
|
tags:
|
|
- group
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Name"
|
|
responses:
|
|
"200":
|
|
description: group
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/Group"
|
|
|
|
/w/{workspace}/groups/adduser/{name}:
|
|
post:
|
|
summary: add user to group
|
|
operationId: addUserToGroup
|
|
tags:
|
|
- group
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Name"
|
|
requestBody:
|
|
description: added user to group
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
username:
|
|
type: string
|
|
responses:
|
|
"200":
|
|
description: user added to group
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/groups/removeuser/{name}:
|
|
post:
|
|
summary: remove user to group
|
|
operationId: removeUserToGroup
|
|
tags:
|
|
- group
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Name"
|
|
requestBody:
|
|
description: added user to group
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
username:
|
|
type: string
|
|
responses:
|
|
"200":
|
|
description: user removed from group
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/groups_history/get/{name}:
|
|
get:
|
|
summary: get group permission history
|
|
operationId: getGroupPermissionHistory
|
|
tags:
|
|
- group
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Name"
|
|
- $ref: "#/components/parameters/Page"
|
|
- $ref: "#/components/parameters/PerPage"
|
|
responses:
|
|
"200":
|
|
description: group permission history
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
type: object
|
|
properties:
|
|
id:
|
|
type: integer
|
|
changed_by:
|
|
type: string
|
|
changed_at:
|
|
type: string
|
|
format: date-time
|
|
change_type:
|
|
type: string
|
|
member_affected:
|
|
type: string
|
|
nullable: true
|
|
|
|
/w/{workspace}/folders/list:
|
|
get:
|
|
summary: list folders
|
|
operationId: listFolders
|
|
tags:
|
|
- folder
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Page"
|
|
- $ref: "#/components/parameters/PerPage"
|
|
responses:
|
|
"200":
|
|
description: folder list
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/Folder"
|
|
|
|
/w/{workspace}/folders/listnames:
|
|
get:
|
|
summary: list folder names
|
|
operationId: listFolderNames
|
|
tags:
|
|
- folder
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- name: only_member_of
|
|
in: query
|
|
description: only list the folders the user is member of (default false)
|
|
schema:
|
|
type: boolean
|
|
responses:
|
|
"200":
|
|
description: folder list
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
type: string
|
|
|
|
/w/{workspace}/folders/create:
|
|
post:
|
|
summary: create folder
|
|
operationId: createFolder
|
|
tags:
|
|
- folder
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
requestBody:
|
|
description: create folder
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
name:
|
|
type: string
|
|
summary:
|
|
type: string
|
|
owners:
|
|
type: array
|
|
items:
|
|
type: string
|
|
extra_perms:
|
|
additionalProperties:
|
|
type: boolean
|
|
required:
|
|
- name
|
|
responses:
|
|
"200":
|
|
description: folder created
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/folders/update/{name}:
|
|
post:
|
|
summary: update folder
|
|
operationId: updateFolder
|
|
tags:
|
|
- folder
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Name"
|
|
requestBody:
|
|
description: update folder
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
summary:
|
|
type: string
|
|
owners:
|
|
type: array
|
|
items:
|
|
type: string
|
|
extra_perms:
|
|
additionalProperties:
|
|
type: boolean
|
|
responses:
|
|
"200":
|
|
description: folder updated
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/folders/delete/{name}:
|
|
delete:
|
|
summary: delete folder
|
|
operationId: deleteFolder
|
|
tags:
|
|
- folder
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Name"
|
|
responses:
|
|
"200":
|
|
description: folder deleted
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/folders/get/{name}:
|
|
get:
|
|
summary: get folder
|
|
operationId: getFolder
|
|
tags:
|
|
- folder
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Name"
|
|
responses:
|
|
"200":
|
|
description: folder
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/Folder"
|
|
|
|
/w/{workspace}/folders/exists/{name}:
|
|
get:
|
|
summary: exists folder
|
|
operationId: existsFolder
|
|
tags:
|
|
- folder
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Name"
|
|
responses:
|
|
"200":
|
|
description: folder exists
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: boolean
|
|
|
|
/w/{workspace}/folders/getusage/{name}:
|
|
get:
|
|
summary: get folder usage
|
|
operationId: getFolderUsage
|
|
tags:
|
|
- folder
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Name"
|
|
responses:
|
|
"200":
|
|
description: folder
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
scripts:
|
|
type: number
|
|
flows:
|
|
type: number
|
|
apps:
|
|
type: number
|
|
resources:
|
|
type: number
|
|
variables:
|
|
type: number
|
|
schedules:
|
|
type: number
|
|
required:
|
|
- scripts
|
|
- flows
|
|
- apps
|
|
- resources
|
|
- variables
|
|
- schedules
|
|
|
|
/w/{workspace}/folders/addowner/{name}:
|
|
post:
|
|
summary: add owner to folder
|
|
operationId: addOwnerToFolder
|
|
tags:
|
|
- folder
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Name"
|
|
requestBody:
|
|
description: owner user to folder
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
owner:
|
|
type: string
|
|
required:
|
|
- owner
|
|
|
|
responses:
|
|
"200":
|
|
description: owner added to folder
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/folders/removeowner/{name}:
|
|
post:
|
|
summary: remove owner to folder
|
|
operationId: removeOwnerToFolder
|
|
tags:
|
|
- folder
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Name"
|
|
requestBody:
|
|
description: added owner to folder
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
owner:
|
|
type: string
|
|
write:
|
|
type: boolean
|
|
required:
|
|
- owner
|
|
responses:
|
|
"200":
|
|
description: owner removed from folder
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/folders_history/get/{name}:
|
|
get:
|
|
summary: get folder permission history
|
|
operationId: getFolderPermissionHistory
|
|
tags:
|
|
- folder
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Name"
|
|
- $ref: "#/components/parameters/Page"
|
|
- $ref: "#/components/parameters/PerPage"
|
|
responses:
|
|
"200":
|
|
description: folder permission history
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
type: object
|
|
properties:
|
|
id:
|
|
type: integer
|
|
changed_by:
|
|
type: string
|
|
changed_at:
|
|
type: string
|
|
format: date-time
|
|
change_type:
|
|
type: string
|
|
affected:
|
|
type: string
|
|
nullable: true
|
|
|
|
/workers/list:
|
|
get:
|
|
summary: list workers
|
|
operationId: listWorkers
|
|
x-mcp-tool: true
|
|
tags:
|
|
- worker
|
|
parameters:
|
|
- $ref: "#/components/parameters/Page"
|
|
- $ref: "#/components/parameters/PerPage"
|
|
- name: ping_since
|
|
in: query
|
|
required: false
|
|
description: number of seconds the worker must have had a last ping more recent of (default to 300)
|
|
schema:
|
|
type: integer
|
|
responses:
|
|
"200":
|
|
description: a list of workers
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/WorkerPing"
|
|
|
|
/workers/exists_workers_with_tags:
|
|
get:
|
|
summary: exists workers with tags
|
|
operationId: existsWorkersWithTags
|
|
tags:
|
|
- worker
|
|
parameters:
|
|
- name: tags
|
|
in: query
|
|
required: true
|
|
description: comma separated list of tags
|
|
schema:
|
|
type: string
|
|
- name: workspace
|
|
in: query
|
|
required: false
|
|
description: workspace to filter tags visibility (required when TAGS_ARE_SENSITIVE is enabled for non-superadmins)
|
|
schema:
|
|
type: string
|
|
responses:
|
|
"200":
|
|
description: map of tags to whether at least one worker with the tag exists
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
additionalProperties:
|
|
type: boolean
|
|
|
|
/workers/queue_metrics:
|
|
get:
|
|
summary: get queue metrics
|
|
operationId: getQueueMetrics
|
|
tags:
|
|
- worker
|
|
responses:
|
|
"200":
|
|
description: metrics
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
type: object
|
|
properties:
|
|
id:
|
|
type: string
|
|
values:
|
|
type: array
|
|
items:
|
|
type: object
|
|
properties:
|
|
created_at:
|
|
type: string
|
|
value:
|
|
type: number
|
|
required:
|
|
- created_at
|
|
- value
|
|
required:
|
|
- id
|
|
- values
|
|
|
|
/workers/queue_counts:
|
|
get:
|
|
summary: get counts of jobs waiting for an executor per tag
|
|
operationId: getCountsOfJobsWaitingPerTag
|
|
tags:
|
|
- worker
|
|
responses:
|
|
"200":
|
|
description: queue counts
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
additionalProperties:
|
|
type: integer
|
|
|
|
/workers/queue_running_counts:
|
|
get:
|
|
summary: get counts of currently running jobs per tag
|
|
operationId: getCountsOfRunningJobsPerTag
|
|
tags:
|
|
- worker
|
|
responses:
|
|
"200":
|
|
description: queue running counts
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
additionalProperties:
|
|
type: integer
|
|
|
|
/configs/list_worker_groups:
|
|
get:
|
|
summary: list worker groups
|
|
operationId: listWorkerGroups
|
|
tags:
|
|
- config
|
|
responses:
|
|
"200":
|
|
description: a list of worker group configs
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
type: object
|
|
properties:
|
|
name:
|
|
type: string
|
|
config: {}
|
|
required:
|
|
- name
|
|
- config
|
|
|
|
/configs/get/{name}:
|
|
get:
|
|
summary: get config
|
|
operationId: get config
|
|
tags:
|
|
- config
|
|
parameters:
|
|
- $ref: "#/components/parameters/Name"
|
|
responses:
|
|
"200":
|
|
description: a config
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/Configs"
|
|
|
|
/configs/update/{name}:
|
|
post:
|
|
summary: Update config
|
|
operationId: updateConfig
|
|
tags:
|
|
- config
|
|
parameters:
|
|
- $ref: "#/components/parameters/Name"
|
|
requestBody:
|
|
description: worker group
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema: {}
|
|
responses:
|
|
"200":
|
|
description: Update a worker group
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
delete:
|
|
summary: Delete Config
|
|
operationId: deleteConfig
|
|
tags:
|
|
- config
|
|
parameters:
|
|
- $ref: "#/components/parameters/Name"
|
|
responses:
|
|
"200":
|
|
description: Delete config
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/configs/list:
|
|
get:
|
|
summary: list configs
|
|
operationId: listConfigs
|
|
tags:
|
|
- config
|
|
responses:
|
|
"200":
|
|
description: list of configs
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/Config"
|
|
|
|
/configs/list_autoscaling_events/{worker_group}:
|
|
get:
|
|
summary: List autoscaling events
|
|
operationId: listAutoscalingEvents
|
|
tags:
|
|
- config
|
|
parameters:
|
|
- name: worker_group
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
- $ref: "#/components/parameters/Page"
|
|
- $ref: "#/components/parameters/PerPage"
|
|
responses:
|
|
"200":
|
|
description: List of autoscaling events
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/AutoscalingEvent"
|
|
|
|
/configs/native_kubernetes_autoscaling_healthcheck:
|
|
get:
|
|
summary: Check Kubernetes autoscaling health for a worker group
|
|
operationId: nativeKubernetesAutoscalingHealthcheck
|
|
tags:
|
|
- config
|
|
responses:
|
|
"200":
|
|
description: Kubernetes autoscaling is healthy
|
|
"400":
|
|
description: Error
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/configs/list_available_python_versions:
|
|
get:
|
|
summary: Get currently available python versions provided by UV.
|
|
operationId: listAvailablePythonVersions
|
|
tags:
|
|
- config
|
|
# parameters:
|
|
responses:
|
|
"200":
|
|
description: List of python versions
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
type: string
|
|
|
|
/configs/list_all_workspace_dependencies:
|
|
get:
|
|
summary: list all workspace dependencies
|
|
operationId: listAllWorkspaceDependencies
|
|
tags:
|
|
- config
|
|
responses:
|
|
"200":
|
|
description: a list of workspace dependency summaries
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
type: object
|
|
properties:
|
|
workspace_id:
|
|
type: string
|
|
name:
|
|
type: string
|
|
language:
|
|
$ref: "#/components/schemas/ScriptLang"
|
|
required:
|
|
- workspace_id
|
|
- language
|
|
|
|
/configs/list_all_dedicated_with_deps:
|
|
get:
|
|
summary: list all dedicated scripts with their dependencies
|
|
operationId: listAllDedicatedWithDeps
|
|
tags:
|
|
- config
|
|
responses:
|
|
"200":
|
|
description: a list of dedicated scripts with workspace dependencies
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
type: object
|
|
properties:
|
|
workspace_id:
|
|
type: string
|
|
path:
|
|
type: string
|
|
language:
|
|
$ref: "#/components/schemas/ScriptLang"
|
|
workspace_dep_names:
|
|
type: array
|
|
items:
|
|
type: string
|
|
required:
|
|
- workspace_id
|
|
- path
|
|
- language
|
|
- workspace_dep_names
|
|
|
|
/agent_workers/create_agent_token:
|
|
post:
|
|
summary: create agent token
|
|
operationId: createAgentToken
|
|
tags:
|
|
- agent_workers
|
|
requestBody:
|
|
description: agent token
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
worker_group:
|
|
type: string
|
|
tags:
|
|
type: array
|
|
items:
|
|
type: string
|
|
exp:
|
|
type: integer
|
|
required:
|
|
- worker_group
|
|
- tags
|
|
- exp
|
|
responses:
|
|
"200":
|
|
description: agent token created
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: string
|
|
|
|
/agent_workers/blacklist_token:
|
|
post:
|
|
summary: blacklist agent token (requires super admin)
|
|
operationId: blacklistAgentToken
|
|
tags:
|
|
- agent_workers
|
|
requestBody:
|
|
description: token to blacklist
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
token:
|
|
type: string
|
|
description: The agent token to blacklist
|
|
expires_at:
|
|
type: string
|
|
format: date-time
|
|
description: Optional expiration date for the blacklist entry
|
|
required:
|
|
- token
|
|
responses:
|
|
"200":
|
|
description: token blacklisted successfully
|
|
|
|
/agent_workers/remove_blacklist_token:
|
|
post:
|
|
summary: remove agent token from blacklist (requires super admin)
|
|
operationId: removeBlacklistAgentToken
|
|
tags:
|
|
- agent_workers
|
|
requestBody:
|
|
description: token to remove from blacklist
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
token:
|
|
type: string
|
|
description: The agent token to remove from blacklist
|
|
required:
|
|
- token
|
|
responses:
|
|
"200":
|
|
description: token removed from blacklist successfully
|
|
|
|
/agent_workers/list_blacklisted_tokens:
|
|
get:
|
|
summary: list blacklisted agent tokens (requires super admin)
|
|
operationId: listBlacklistedAgentTokens
|
|
tags:
|
|
- agent_workers
|
|
parameters:
|
|
- name: include_expired
|
|
in: query
|
|
description: Whether to include expired blacklisted tokens
|
|
schema:
|
|
type: boolean
|
|
default: false
|
|
responses:
|
|
"200":
|
|
description: list of blacklisted tokens
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
type: object
|
|
properties:
|
|
token:
|
|
type: string
|
|
description: The blacklisted token (without prefix)
|
|
expires_at:
|
|
type: string
|
|
format: date-time
|
|
description: When the blacklist entry expires
|
|
blacklisted_at:
|
|
type: string
|
|
format: date-time
|
|
description: When the token was blacklisted
|
|
blacklisted_by:
|
|
type: string
|
|
description: Email of the user who blacklisted the token
|
|
required:
|
|
- token
|
|
- expires_at
|
|
- blacklisted_at
|
|
- blacklisted_by
|
|
|
|
/agent_workers/get_min_version:
|
|
get:
|
|
summary: get minimum worker version across all workers
|
|
operationId: getMinVersion
|
|
tags:
|
|
- agent_workers
|
|
responses:
|
|
"200":
|
|
description: minimum worker version
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: string
|
|
description: Minimum semantic version across all workers (e.g. "1.583.0")
|
|
|
|
/w/{workspace}/acls/get/{kind}/{path}:
|
|
get:
|
|
summary: get granular acls
|
|
operationId: getGranularAcls
|
|
tags:
|
|
- granular_acl
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Path"
|
|
- name: kind
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
enum:
|
|
[
|
|
script,
|
|
group_,
|
|
resource,
|
|
schedule,
|
|
variable,
|
|
flow,
|
|
folder,
|
|
app,
|
|
raw_app,
|
|
http_trigger,
|
|
websocket_trigger,
|
|
kafka_trigger,
|
|
nats_trigger,
|
|
postgres_trigger,
|
|
mqtt_trigger,
|
|
gcp_trigger,
|
|
sqs_trigger,
|
|
email_trigger,
|
|
volume,
|
|
]
|
|
responses:
|
|
"200":
|
|
description: acls
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
additionalProperties:
|
|
type: boolean
|
|
|
|
/w/{workspace}/acls/add/{kind}/{path}:
|
|
post:
|
|
summary: add granular acls
|
|
operationId: addGranularAcls
|
|
tags:
|
|
- granular_acl
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Path"
|
|
- name: kind
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
enum:
|
|
[
|
|
script,
|
|
group_,
|
|
resource,
|
|
schedule,
|
|
variable,
|
|
flow,
|
|
folder,
|
|
app,
|
|
raw_app,
|
|
http_trigger,
|
|
websocket_trigger,
|
|
kafka_trigger,
|
|
nats_trigger,
|
|
postgres_trigger,
|
|
mqtt_trigger,
|
|
gcp_trigger,
|
|
sqs_trigger,
|
|
email_trigger,
|
|
volume,
|
|
]
|
|
requestBody:
|
|
description: acl to add
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
owner:
|
|
type: string
|
|
write:
|
|
type: boolean
|
|
required: [owner]
|
|
responses:
|
|
"200":
|
|
description: granular acl added
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/acls/remove/{kind}/{path}:
|
|
post:
|
|
summary: remove granular acls
|
|
operationId: removeGranularAcls
|
|
tags:
|
|
- granular_acl
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Path"
|
|
- name: kind
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
enum:
|
|
[
|
|
script,
|
|
group_,
|
|
resource,
|
|
schedule,
|
|
variable,
|
|
flow,
|
|
folder,
|
|
app,
|
|
raw_app,
|
|
http_trigger,
|
|
websocket_trigger,
|
|
kafka_trigger,
|
|
nats_trigger,
|
|
postgres_trigger,
|
|
mqtt_trigger,
|
|
gcp_trigger,
|
|
sqs_trigger,
|
|
email_trigger,
|
|
volume,
|
|
]
|
|
requestBody:
|
|
description: acl to add
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
owner:
|
|
type: string
|
|
required: [owner]
|
|
responses:
|
|
"200":
|
|
description: granular acl removed
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/capture/set_config:
|
|
post:
|
|
summary: set capture config
|
|
operationId: setCaptureConfig
|
|
tags:
|
|
- capture
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
requestBody:
|
|
description: capture config
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
trigger_kind:
|
|
$ref: "#/components/schemas/CaptureTriggerKind"
|
|
path:
|
|
type: string
|
|
is_flow:
|
|
type: boolean
|
|
trigger_config:
|
|
type: object
|
|
required:
|
|
- trigger_kind
|
|
- path
|
|
- is_flow
|
|
responses:
|
|
"200":
|
|
description: capture config set
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
|
|
/w/{workspace}/capture/ping_config/{trigger_kind}/{runnable_kind}/{path}:
|
|
post:
|
|
summary: ping capture config
|
|
operationId: pingCaptureConfig
|
|
tags:
|
|
- capture
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- name: trigger_kind
|
|
in: path
|
|
required: true
|
|
schema:
|
|
$ref: "#/components/schemas/CaptureTriggerKind"
|
|
- $ref: "#/components/parameters/RunnableKind"
|
|
- $ref: "#/components/parameters/Path"
|
|
responses:
|
|
"200":
|
|
description: capture config pinged
|
|
|
|
/w/{workspace}/capture/get_configs/{runnable_kind}/{path}:
|
|
get:
|
|
summary: get capture configs for a script or flow
|
|
operationId: getCaptureConfigs
|
|
tags:
|
|
- capture
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/RunnableKind"
|
|
- $ref: "#/components/parameters/Path"
|
|
responses:
|
|
"200":
|
|
description: capture configs for a script or flow
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/CaptureConfig"
|
|
|
|
/w/{workspace}/capture/list/{runnable_kind}/{path}:
|
|
get:
|
|
summary: list captures for a script or flow
|
|
operationId: listCaptures
|
|
tags:
|
|
- capture
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/RunnableKind"
|
|
- $ref: "#/components/parameters/Path"
|
|
- name: trigger_kind
|
|
in: query
|
|
schema:
|
|
$ref: "#/components/schemas/CaptureTriggerKind"
|
|
- $ref: "#/components/parameters/Page"
|
|
- $ref: "#/components/parameters/PerPage"
|
|
responses:
|
|
"200":
|
|
description: list of captures for a script or flow
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/Capture"
|
|
|
|
/w/{workspace}/capture/move/{runnable_kind}/{path}:
|
|
post:
|
|
summary: move captures and configs for a script or flow
|
|
operationId: moveCapturesAndConfigs
|
|
tags:
|
|
- capture
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/RunnableKind"
|
|
- $ref: "#/components/parameters/Path"
|
|
requestBody:
|
|
description: move captures and configs to a new path
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
new_path:
|
|
type: string
|
|
responses:
|
|
"200":
|
|
description: captures and configs moved
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/capture/{id}:
|
|
get:
|
|
summary: get a capture
|
|
operationId: getCapture
|
|
tags:
|
|
- capture
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- name: id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: integer
|
|
responses:
|
|
"200":
|
|
description: capture
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/Capture"
|
|
delete:
|
|
summary: delete a capture
|
|
operationId: deleteCapture
|
|
tags:
|
|
- capture
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- name: id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: integer
|
|
responses:
|
|
"200":
|
|
description: capture deleted
|
|
|
|
/w/{workspace}/favorites/star:
|
|
post:
|
|
summary: star item
|
|
operationId: star
|
|
tags:
|
|
- favorite
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
path:
|
|
type: string
|
|
favorite_kind:
|
|
type: string
|
|
enum: [flow, app, script, raw_app, asset]
|
|
responses:
|
|
"200":
|
|
description: star item
|
|
|
|
/w/{workspace}/favorites/unstar:
|
|
post:
|
|
summary: unstar item
|
|
operationId: unstar
|
|
tags:
|
|
- favorite
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
path:
|
|
type: string
|
|
favorite_kind:
|
|
type: string
|
|
enum: [flow, app, script, raw_app, asset]
|
|
responses:
|
|
"200":
|
|
description: unstar item
|
|
|
|
/w/{workspace}/inputs/history:
|
|
get:
|
|
summary: List Inputs used in previously completed jobs
|
|
operationId: getInputHistory
|
|
tags:
|
|
- input
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/RunnableId"
|
|
- $ref: "#/components/parameters/RunnableTypeQuery"
|
|
- $ref: "#/components/parameters/Page"
|
|
- $ref: "#/components/parameters/PerPage"
|
|
- $ref: "#/components/parameters/ArgsFilter"
|
|
- name: include_preview
|
|
in: query
|
|
schema:
|
|
type: boolean
|
|
responses:
|
|
"200":
|
|
description: Input history for completed jobs
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/Input"
|
|
|
|
/w/{workspace}/inputs/{jobOrInputId}/args:
|
|
get:
|
|
summary: Get args from history or saved input
|
|
operationId: getArgsFromHistoryOrSavedInput
|
|
tags:
|
|
- input
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- name: jobOrInputId
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
- name: input
|
|
in: query
|
|
schema:
|
|
type: boolean
|
|
- name: allow_large
|
|
in: query
|
|
schema:
|
|
type: boolean
|
|
responses:
|
|
"200":
|
|
description: args
|
|
content:
|
|
application/json:
|
|
schema: {}
|
|
|
|
/w/{workspace}/inputs/list:
|
|
get:
|
|
summary: List saved Inputs for a Runnable
|
|
operationId: listInputs
|
|
tags:
|
|
- input
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/RunnableId"
|
|
- $ref: "#/components/parameters/RunnableTypeQuery"
|
|
- $ref: "#/components/parameters/Page"
|
|
- $ref: "#/components/parameters/PerPage"
|
|
responses:
|
|
"200":
|
|
description: Saved Inputs for a Runnable
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/Input"
|
|
|
|
/w/{workspace}/inputs/create:
|
|
post:
|
|
summary: Create an Input for future use in a script or flow
|
|
operationId: createInput
|
|
tags:
|
|
- input
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/RunnableId"
|
|
- $ref: "#/components/parameters/RunnableTypeQuery"
|
|
requestBody:
|
|
description: Input
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/CreateInput"
|
|
responses:
|
|
"201":
|
|
description: Input created
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
format: uuid
|
|
|
|
/w/{workspace}/inputs/update:
|
|
post:
|
|
summary: Update an Input
|
|
operationId: updateInput
|
|
tags:
|
|
- input
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
requestBody:
|
|
description: UpdateInput
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/UpdateInput"
|
|
responses:
|
|
"201":
|
|
description: Input updated
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
format: uuid
|
|
|
|
/w/{workspace}/inputs/delete/{input}:
|
|
post:
|
|
summary: Delete a Saved Input
|
|
operationId: deleteInput
|
|
tags:
|
|
- input
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/InputId"
|
|
responses:
|
|
"200":
|
|
description: Input deleted
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
format: uuid
|
|
|
|
/w/{workspace}/job_helpers/duckdb_connection_settings:
|
|
post:
|
|
summary:
|
|
Converts an S3 resource to the set of instructions necessary to connect
|
|
DuckDB to an S3 bucket
|
|
operationId: duckdbConnectionSettings
|
|
tags:
|
|
- helpers
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
requestBody:
|
|
description: S3 resource to connect to
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
s3_resource:
|
|
$ref: "#/components/schemas/S3Resource"
|
|
responses:
|
|
"200":
|
|
description: Connection settings
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
connection_settings_str:
|
|
type: string
|
|
/w/{workspace}/job_helpers/v2/duckdb_connection_settings:
|
|
post:
|
|
summary:
|
|
Converts an S3 resource to the set of instructions necessary to connect
|
|
DuckDB to an S3 bucket
|
|
operationId: duckdbConnectionSettingsV2
|
|
tags:
|
|
- helpers
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
requestBody:
|
|
description:
|
|
S3 resource path to use to generate the connection settings. If empty,
|
|
the S3 resource defined in the workspace settings will be used
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
s3_resource_path:
|
|
type: string
|
|
responses:
|
|
"200":
|
|
description: Connection settings
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
connection_settings_str:
|
|
type: string
|
|
azure_container_path:
|
|
type: string
|
|
required:
|
|
- connection_settings_str
|
|
|
|
/w/{workspace}/job_helpers/polars_connection_settings:
|
|
post:
|
|
summary:
|
|
Converts an S3 resource to the set of arguments necessary to connect
|
|
Polars to an S3 bucket
|
|
operationId: polarsConnectionSettings
|
|
tags:
|
|
- helpers
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
requestBody:
|
|
description: S3 resource to connect to
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
s3_resource:
|
|
$ref: "#/components/schemas/S3Resource"
|
|
responses:
|
|
"200":
|
|
description: Connection settings
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
endpoint_url:
|
|
type: string
|
|
key:
|
|
type: string
|
|
secret:
|
|
type: string
|
|
use_ssl:
|
|
type: boolean
|
|
cache_regions:
|
|
type: boolean
|
|
client_kwargs:
|
|
$ref: "#/components/schemas/PolarsClientKwargs"
|
|
required:
|
|
- endpoint_url
|
|
- use_ssl
|
|
- cache_regions
|
|
- client_kwargs
|
|
/w/{workspace}/job_helpers/v2/polars_connection_settings:
|
|
post:
|
|
summary:
|
|
Converts an S3 resource to the set of arguments necessary to connect
|
|
Polars to an S3 bucket
|
|
operationId: polarsConnectionSettingsV2
|
|
tags:
|
|
- helpers
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
requestBody:
|
|
description:
|
|
S3 resource path to use to generate the connection settings. If empty,
|
|
the S3 resource defined in the workspace settings will be used
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
s3_resource_path:
|
|
type: string
|
|
responses:
|
|
"200":
|
|
description: Connection settings
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
s3fs_args:
|
|
type: object
|
|
properties:
|
|
endpoint_url:
|
|
type: string
|
|
key:
|
|
type: string
|
|
secret:
|
|
type: string
|
|
use_ssl:
|
|
type: boolean
|
|
cache_regions:
|
|
type: boolean
|
|
client_kwargs:
|
|
$ref: "#/components/schemas/PolarsClientKwargs"
|
|
required:
|
|
- endpoint_url
|
|
- use_ssl
|
|
- cache_regions
|
|
- client_kwargs
|
|
storage_options:
|
|
type: object
|
|
properties:
|
|
aws_endpoint_url:
|
|
type: string
|
|
aws_access_key_id:
|
|
type: string
|
|
aws_secret_access_key:
|
|
type: string
|
|
aws_region:
|
|
type: string
|
|
aws_allow_http:
|
|
type: string
|
|
required:
|
|
- aws_endpoint_url
|
|
- aws_region
|
|
- aws_allow_http
|
|
required:
|
|
- s3fs_args
|
|
- storage_options
|
|
/w/{workspace}/job_helpers/v2/s3_resource_info:
|
|
post:
|
|
summary: Returns the s3 resource associated to the provided path, or the
|
|
workspace default S3 resource
|
|
operationId: s3ResourceInfo
|
|
tags:
|
|
- helpers
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
requestBody:
|
|
description:
|
|
S3 resource path to use. If empty, the S3 resource defined in the
|
|
workspace settings will be used
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
s3_resource_path:
|
|
type: string
|
|
responses:
|
|
"200":
|
|
description: Connection settings
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/S3Resource"
|
|
|
|
/w/{workspace}/job_helpers/test_connection:
|
|
get:
|
|
summary: Test connection to the workspace object storage
|
|
operationId: datasetStorageTestConnection
|
|
tags:
|
|
- helpers
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- name: storage
|
|
in: query
|
|
schema:
|
|
type: string
|
|
responses:
|
|
"200":
|
|
description: Connection settings
|
|
content:
|
|
application/json:
|
|
schema: {}
|
|
|
|
/w/{workspace}/job_helpers/list_stored_files:
|
|
get:
|
|
summary: List the file keys available in a workspace object storage
|
|
operationId: listStoredFiles
|
|
tags:
|
|
- helpers
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- name: max_keys
|
|
in: query
|
|
required: true
|
|
schema:
|
|
type: integer
|
|
- name: marker
|
|
in: query
|
|
schema:
|
|
type: string
|
|
- name: prefix
|
|
in: query
|
|
schema:
|
|
type: string
|
|
- name: storage
|
|
in: query
|
|
schema:
|
|
type: string
|
|
responses:
|
|
"200":
|
|
description: List of file keys
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
next_marker:
|
|
type: string
|
|
windmill_large_files:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/WindmillLargeFile"
|
|
restricted_access:
|
|
type: boolean
|
|
required:
|
|
- windmill_large_files
|
|
|
|
/w/{workspace}/job_helpers/load_file_metadata:
|
|
get:
|
|
summary: Load metadata of the file
|
|
operationId: loadFileMetadata
|
|
tags:
|
|
- helpers
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- name: file_key
|
|
in: query
|
|
required: true
|
|
schema:
|
|
type: string
|
|
- name: storage
|
|
in: query
|
|
schema:
|
|
type: string
|
|
responses:
|
|
"200":
|
|
description: FileMetadata
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/WindmillFileMetadata"
|
|
|
|
/w/{workspace}/job_helpers/load_file_preview:
|
|
get:
|
|
summary: Load a preview of the file
|
|
operationId: loadFilePreview
|
|
tags:
|
|
- helpers
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- name: file_key
|
|
in: query
|
|
required: true
|
|
schema:
|
|
type: string
|
|
- name: file_size_in_bytes
|
|
in: query
|
|
schema:
|
|
type: integer
|
|
- name: file_mime_type
|
|
in: query
|
|
schema:
|
|
type: string
|
|
- name: csv_separator
|
|
in: query
|
|
schema:
|
|
type: string
|
|
- name: csv_has_header
|
|
in: query
|
|
schema:
|
|
type: boolean
|
|
- name: read_bytes_from
|
|
in: query
|
|
schema:
|
|
type: integer
|
|
- name: read_bytes_length
|
|
in: query
|
|
schema:
|
|
type: integer
|
|
- name: storage
|
|
in: query
|
|
schema:
|
|
type: string
|
|
responses:
|
|
"200":
|
|
description: FilePreview
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/WindmillFilePreview"
|
|
|
|
/w/{workspace}/job_helpers/list_git_repo_files:
|
|
get:
|
|
summary: List the file keys available in instance object storage with resource-based access control
|
|
operationId: listGitRepoFiles
|
|
tags:
|
|
- helpers
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- name: max_keys
|
|
in: query
|
|
required: true
|
|
schema:
|
|
type: integer
|
|
- name: marker
|
|
in: query
|
|
schema:
|
|
type: string
|
|
- name: prefix
|
|
in: query
|
|
required: false
|
|
schema:
|
|
type: string
|
|
description: Must follow format gitrepos/{workspace_id}/{resource_path}/...
|
|
- name: storage
|
|
in: query
|
|
schema:
|
|
type: string
|
|
responses:
|
|
"200":
|
|
description: List of file keys
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
next_marker:
|
|
type: string
|
|
windmill_large_files:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/WindmillLargeFile"
|
|
restricted_access:
|
|
type: boolean
|
|
required:
|
|
- windmill_large_files
|
|
|
|
/w/{workspace}/job_helpers/load_git_repo_file_preview:
|
|
get:
|
|
summary: Load a preview of a file from instance storage with resource-based access control
|
|
operationId: loadGitRepoFilePreview
|
|
tags:
|
|
- helpers
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- name: file_key
|
|
in: query
|
|
required: true
|
|
schema:
|
|
type: string
|
|
description: Must follow format gitrepos/{workspace_id}/{resource_path}/...
|
|
- name: file_size_in_bytes
|
|
in: query
|
|
schema:
|
|
type: integer
|
|
- name: file_mime_type
|
|
in: query
|
|
schema:
|
|
type: string
|
|
- name: csv_separator
|
|
in: query
|
|
schema:
|
|
type: string
|
|
- name: csv_has_header
|
|
in: query
|
|
schema:
|
|
type: boolean
|
|
- name: read_bytes_from
|
|
in: query
|
|
schema:
|
|
type: integer
|
|
- name: read_bytes_length
|
|
in: query
|
|
schema:
|
|
type: integer
|
|
- name: storage
|
|
in: query
|
|
schema:
|
|
type: string
|
|
responses:
|
|
"200":
|
|
description: FilePreview
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/WindmillFilePreview"
|
|
|
|
/w/{workspace}/job_helpers/load_git_repo_file_metadata:
|
|
get:
|
|
summary: Load file metadata from instance storage with resource-based access control
|
|
operationId: loadGitRepoFileMetadata
|
|
tags:
|
|
- helpers
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- name: file_key
|
|
in: query
|
|
required: true
|
|
schema:
|
|
type: string
|
|
description: Must follow format gitrepos/{workspace_id}/{resource_path}/...
|
|
- name: storage
|
|
in: query
|
|
schema:
|
|
type: string
|
|
responses:
|
|
"200":
|
|
description: FileMetadata
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/WindmillFileMetadata"
|
|
|
|
/w/{workspace}/job_helpers/check_s3_folder_exists:
|
|
get:
|
|
summary: Check if S3 path exists and is a folder
|
|
operationId: checkS3FolderExists
|
|
tags:
|
|
- helpers
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- name: file_key
|
|
description: S3 file key to check (e.g., gitrepos/{workspace_id}/u/user/resource/{commit_hash})
|
|
in: query
|
|
required: true
|
|
schema:
|
|
type: string
|
|
responses:
|
|
"200":
|
|
description: S3 folder existence check result
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
exists:
|
|
type: boolean
|
|
description: Whether the path exists
|
|
is_folder:
|
|
type: boolean
|
|
description: Whether the path is a folder (true) or file (false)
|
|
required:
|
|
- exists
|
|
- is_folder
|
|
|
|
/w/{workspace}/job_helpers/load_parquet_preview/{path}:
|
|
get:
|
|
summary: Load a preview of a parquet file
|
|
operationId: loadParquetPreview
|
|
tags:
|
|
- helpers
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Path"
|
|
- name: offset
|
|
in: query
|
|
schema:
|
|
type: number
|
|
- name: limit
|
|
in: query
|
|
schema:
|
|
type: number
|
|
- name: sort_col
|
|
in: query
|
|
schema:
|
|
type: string
|
|
- name: sort_desc
|
|
in: query
|
|
schema:
|
|
type: boolean
|
|
- name: search_col
|
|
in: query
|
|
schema:
|
|
type: string
|
|
- name: search_term
|
|
in: query
|
|
schema:
|
|
type: string
|
|
- name: storage
|
|
in: query
|
|
schema:
|
|
type: string
|
|
responses:
|
|
"200":
|
|
description: Parquet Preview
|
|
content:
|
|
application/json: {}
|
|
|
|
/w/{workspace}/job_helpers/load_table_count/{path}:
|
|
get:
|
|
summary: Load the table row count
|
|
operationId: loadTableRowCount
|
|
tags:
|
|
- helpers
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Path"
|
|
- name: search_col
|
|
in: query
|
|
schema:
|
|
type: string
|
|
- name: search_term
|
|
in: query
|
|
schema:
|
|
type: string
|
|
- name: storage
|
|
in: query
|
|
schema:
|
|
type: string
|
|
responses:
|
|
"200":
|
|
description: Table count
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
count:
|
|
type: number
|
|
|
|
/w/{workspace}/job_helpers/load_csv_preview/{path}:
|
|
get:
|
|
summary: Load a preview of a csv file
|
|
operationId: loadCsvPreview
|
|
tags:
|
|
- helpers
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Path"
|
|
- name: offset
|
|
in: query
|
|
schema:
|
|
type: number
|
|
- name: limit
|
|
in: query
|
|
schema:
|
|
type: number
|
|
- name: sort_col
|
|
in: query
|
|
schema:
|
|
type: string
|
|
- name: sort_desc
|
|
in: query
|
|
schema:
|
|
type: boolean
|
|
- name: search_col
|
|
in: query
|
|
schema:
|
|
type: string
|
|
- name: search_term
|
|
in: query
|
|
schema:
|
|
type: string
|
|
- name: storage
|
|
in: query
|
|
schema:
|
|
type: string
|
|
- name: csv_separator
|
|
in: query
|
|
schema:
|
|
type: string
|
|
responses:
|
|
"200":
|
|
description: Csv Preview
|
|
content:
|
|
application/json: {}
|
|
|
|
/w/{workspace}/job_helpers/delete_s3_file:
|
|
delete:
|
|
summary: Permanently delete file from S3
|
|
operationId: deleteS3File
|
|
tags:
|
|
- helpers
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- name: file_key
|
|
in: query
|
|
required: true
|
|
schema:
|
|
type: string
|
|
- name: storage
|
|
in: query
|
|
schema:
|
|
type: string
|
|
responses:
|
|
"200":
|
|
description: Confirmation
|
|
content:
|
|
application/json:
|
|
schema: {}
|
|
|
|
/w/{workspace}/job_helpers/move_s3_file:
|
|
get:
|
|
summary: Move a S3 file from one path to the other within the same bucket
|
|
operationId: moveS3File
|
|
tags:
|
|
- helpers
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- name: src_file_key
|
|
in: query
|
|
required: true
|
|
schema:
|
|
type: string
|
|
- name: dest_file_key
|
|
in: query
|
|
required: true
|
|
schema:
|
|
type: string
|
|
- name: storage
|
|
in: query
|
|
schema:
|
|
type: string
|
|
responses:
|
|
"200":
|
|
description: Confirmation
|
|
content:
|
|
application/json:
|
|
schema: {}
|
|
|
|
/w/{workspace}/job_helpers/upload_s3_file:
|
|
post:
|
|
summary: Upload file to S3 bucket
|
|
operationId: fileUpload
|
|
tags:
|
|
- helpers
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- name: file_key
|
|
in: query
|
|
required: false
|
|
schema:
|
|
type: string
|
|
- name: file_extension
|
|
in: query
|
|
required: false
|
|
schema:
|
|
type: string
|
|
- name: s3_resource_path
|
|
in: query
|
|
required: false
|
|
schema:
|
|
type: string
|
|
- name: resource_type
|
|
in: query
|
|
required: false
|
|
schema:
|
|
type: string
|
|
- name: storage
|
|
in: query
|
|
schema:
|
|
type: string
|
|
- name: content_type
|
|
in: query
|
|
schema:
|
|
type: string
|
|
- name: content_disposition
|
|
in: query
|
|
schema:
|
|
type: string
|
|
requestBody:
|
|
description: File content
|
|
required: true
|
|
content:
|
|
application/octet-stream:
|
|
schema:
|
|
type: string
|
|
format: binary
|
|
responses:
|
|
"200":
|
|
description: File upload status
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
file_key:
|
|
type: string
|
|
required:
|
|
- file_key
|
|
|
|
/w/{workspace}/job_helpers/upload_git_repo_file_to_instance_storage:
|
|
post:
|
|
summary: Upload a file to the instance storage gitrepos section for viewing
|
|
operationId: gitRepoViewerFileUpload
|
|
tags:
|
|
- helpers
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- name: file_key
|
|
in: query
|
|
required: false
|
|
schema:
|
|
type: string
|
|
- name: file_extension
|
|
in: query
|
|
required: false
|
|
schema:
|
|
type: string
|
|
- name: s3_resource_path
|
|
in: query
|
|
required: false
|
|
schema:
|
|
type: string
|
|
- name: resource_type
|
|
in: query
|
|
required: false
|
|
schema:
|
|
type: string
|
|
- name: storage
|
|
in: query
|
|
schema:
|
|
type: string
|
|
- name: content_type
|
|
in: query
|
|
schema:
|
|
type: string
|
|
- name: content_disposition
|
|
in: query
|
|
schema:
|
|
type: string
|
|
requestBody:
|
|
description: File content
|
|
required: true
|
|
content:
|
|
application/octet-stream:
|
|
schema:
|
|
type: string
|
|
format: binary
|
|
responses:
|
|
"200":
|
|
description: File upload status
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
file_key:
|
|
type: string
|
|
required:
|
|
- file_key
|
|
|
|
/w/{workspace}/job_helpers/download_s3_file:
|
|
get:
|
|
summary: Download file from S3 bucket
|
|
operationId: fileDownload
|
|
tags:
|
|
- helpers
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- name: file_key
|
|
in: query
|
|
required: true
|
|
schema:
|
|
type: string
|
|
- name: s3_resource_path
|
|
in: query
|
|
required: false
|
|
schema:
|
|
type: string
|
|
- name: resource_type
|
|
in: query
|
|
required: false
|
|
schema:
|
|
type: string
|
|
- name: storage
|
|
in: query
|
|
schema:
|
|
type: string
|
|
responses:
|
|
"200":
|
|
description: Chunk of the downloaded file
|
|
content:
|
|
application/octet-stream:
|
|
schema:
|
|
type: string
|
|
format: binary
|
|
|
|
/w/{workspace}/job_helpers/download_s3_parquet_file_as_csv:
|
|
get:
|
|
summary: Download file to S3 bucket
|
|
operationId: fileDownloadParquetAsCsv
|
|
tags:
|
|
- helpers
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- name: file_key
|
|
in: query
|
|
required: true
|
|
schema:
|
|
type: string
|
|
- name: s3_resource_path
|
|
in: query
|
|
required: false
|
|
schema:
|
|
type: string
|
|
- name: resource_type
|
|
in: query
|
|
required: false
|
|
schema:
|
|
type: string
|
|
responses:
|
|
"200":
|
|
description: The downloaded file
|
|
content:
|
|
text/csv:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/job_metrics/get/{id}:
|
|
post:
|
|
summary: get job metrics
|
|
operationId: getJobMetrics
|
|
tags:
|
|
- metrics
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/JobId"
|
|
requestBody:
|
|
description: parameters for statistics retrieval
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
timeseries_max_datapoints:
|
|
type: integer
|
|
from_timestamp:
|
|
type: string
|
|
format: date-time
|
|
to_timestamp:
|
|
type: string
|
|
format: date-time
|
|
|
|
responses:
|
|
"200":
|
|
description: job details
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
metrics_metadata:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/MetricMetadata"
|
|
scalar_metrics:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/ScalarMetric"
|
|
timeseries_metrics:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/TimeseriesMetric"
|
|
|
|
/w/{workspace}/job_metrics/set_progress/{id}:
|
|
post:
|
|
summary: set job metrics
|
|
operationId: setJobProgress
|
|
tags:
|
|
- metrics
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/JobId"
|
|
requestBody:
|
|
description: parameters for statistics retrieval
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
percent:
|
|
type: integer
|
|
flow_job_id:
|
|
type: string
|
|
format: uuid
|
|
|
|
responses:
|
|
"200":
|
|
description: Job progress updated
|
|
content:
|
|
application/json:
|
|
schema: {}
|
|
|
|
/w/{workspace}/job_metrics/get_progress/{id}:
|
|
get:
|
|
summary: get job progress
|
|
operationId: getJobProgress
|
|
tags:
|
|
- metrics
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/JobId"
|
|
responses:
|
|
"200":
|
|
description: job progress between 0 and 99
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: integer
|
|
/service_logs/list_files:
|
|
get:
|
|
summary: list log files ordered by timestamp
|
|
operationId: listLogFiles
|
|
tags:
|
|
- service_logs
|
|
parameters:
|
|
- $ref: "#/components/parameters/Before"
|
|
- $ref: "#/components/parameters/After"
|
|
- name: with_error
|
|
in: query
|
|
required: false
|
|
schema:
|
|
type: boolean
|
|
responses:
|
|
"200":
|
|
description: time
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
type: object
|
|
properties:
|
|
hostname:
|
|
type: string
|
|
mode:
|
|
type: string
|
|
worker_group:
|
|
type: string
|
|
log_ts:
|
|
type: string
|
|
format: date-time
|
|
file_path:
|
|
type: string
|
|
ok_lines:
|
|
type: integer
|
|
err_lines:
|
|
type: integer
|
|
json_fmt:
|
|
type: boolean
|
|
required:
|
|
- hostname
|
|
- mode
|
|
- log_ts
|
|
- file_path
|
|
- json_fmt
|
|
|
|
/service_logs/get_log_file/{path}:
|
|
get:
|
|
summary: get log file by path
|
|
operationId: getLogFile
|
|
tags:
|
|
- service_logs
|
|
parameters:
|
|
- $ref: "#/components/parameters/Path"
|
|
responses:
|
|
"200":
|
|
description: log stream
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
/concurrency_groups/list:
|
|
get:
|
|
summary: List all concurrency groups
|
|
operationId: listConcurrencyGroups
|
|
tags:
|
|
- concurrencyGroups
|
|
responses:
|
|
"200":
|
|
description: all concurrency groups
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/ConcurrencyGroup"
|
|
/concurrency_groups/prune/{concurrency_id}:
|
|
delete:
|
|
summary: Delete concurrency group
|
|
operationId: deleteConcurrencyGroup
|
|
tags:
|
|
- concurrencyGroups
|
|
parameters:
|
|
- $ref: "#/components/parameters/ConcurrencyId"
|
|
responses:
|
|
"200":
|
|
description: concurrency group removed
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties: {}
|
|
/concurrency_groups/{id}/key:
|
|
get:
|
|
summary: Get the concurrency key for a job that has concurrency limits enabled
|
|
operationId: getConcurrencyKey
|
|
tags:
|
|
- concurrencyGroups
|
|
parameters:
|
|
- $ref: "#/components/parameters/JobId"
|
|
responses:
|
|
"200":
|
|
description: concurrency key for given job
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: string
|
|
/w/{workspace}/concurrency_groups/list_jobs:
|
|
get:
|
|
summary: Get intervals of job runtime concurrency
|
|
operationId: listExtendedJobs
|
|
tags:
|
|
- concurrencyGroups
|
|
- job
|
|
parameters:
|
|
- name: concurrency_key
|
|
in: query
|
|
required: false
|
|
schema:
|
|
type: string
|
|
- name: row_limit
|
|
in: query
|
|
required: false
|
|
schema:
|
|
type: number
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/CreatedBy"
|
|
- $ref: "#/components/parameters/Label"
|
|
- $ref: "#/components/parameters/ParentJob"
|
|
- $ref: "#/components/parameters/ScriptExactPath"
|
|
- $ref: "#/components/parameters/ScriptStartPath"
|
|
- $ref: "#/components/parameters/SchedulePath"
|
|
- $ref: "#/components/parameters/ScriptExactHash"
|
|
- $ref: "#/components/parameters/StartedBefore"
|
|
- $ref: "#/components/parameters/StartedAfter"
|
|
- $ref: "#/components/parameters/Running"
|
|
- $ref: "#/components/parameters/ScheduledForBeforeNow"
|
|
- $ref: "#/components/parameters/CompletedBefore"
|
|
- $ref: "#/components/parameters/CompletedAfter"
|
|
- $ref: "#/components/parameters/CreatedBeforeQueue"
|
|
- $ref: "#/components/parameters/CreatedAfterQueue"
|
|
- $ref: "#/components/parameters/JobKinds"
|
|
- $ref: "#/components/parameters/ArgsFilter"
|
|
- $ref: "#/components/parameters/Tag"
|
|
- $ref: "#/components/parameters/ResultFilter"
|
|
- $ref: "#/components/parameters/AllowWildcards"
|
|
- $ref: "#/components/parameters/Page"
|
|
- $ref: "#/components/parameters/PerPage"
|
|
- $ref: "#/components/parameters/JobTriggerKind"
|
|
- name: is_skipped
|
|
description: is the job skipped
|
|
in: query
|
|
schema:
|
|
type: boolean
|
|
- name: is_flow_step
|
|
description: is the job a flow step
|
|
in: query
|
|
schema:
|
|
type: boolean
|
|
- name: has_null_parent
|
|
description: has null parent
|
|
in: query
|
|
schema:
|
|
type: boolean
|
|
- name: success
|
|
description: filter on successful jobs
|
|
in: query
|
|
schema:
|
|
type: boolean
|
|
- name: all_workspaces
|
|
description: get jobs from all workspaces (only valid if request come from the `admins` workspace)
|
|
in: query
|
|
schema:
|
|
type: boolean
|
|
- name: is_not_schedule
|
|
description: is not a scheduled job
|
|
in: query
|
|
schema:
|
|
type: boolean
|
|
responses:
|
|
"200":
|
|
description: time
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ExtendedJobs"
|
|
|
|
/srch/w/{workspace}/index/search/job:
|
|
get:
|
|
summary: Search through jobs with a string query
|
|
operationId: searchJobsIndex
|
|
tags:
|
|
- indexSearch
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- name: search_query
|
|
in: query
|
|
required: true
|
|
schema:
|
|
type: string
|
|
- name: pagination_offset
|
|
in: query
|
|
required: false
|
|
schema:
|
|
type: integer
|
|
responses:
|
|
"200":
|
|
description: search results
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
query_parse_errors:
|
|
description: a list of the terms that couldn't be parsed (and thus ignored)
|
|
type: array
|
|
items:
|
|
type: string
|
|
hits:
|
|
description: the jobs that matched the query
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/JobSearchHit"
|
|
hit_count:
|
|
description: how many jobs matched in total
|
|
type: number
|
|
index_metadata:
|
|
description: Metadata about the index current state
|
|
type: object
|
|
properties:
|
|
indexed_until:
|
|
description: Datetime of the most recently indexed job
|
|
type: string
|
|
format: date-time
|
|
lost_lock_ownership:
|
|
description: Is the current indexer service being replaced
|
|
type: boolean
|
|
max_index_time_window_secs:
|
|
description: Maximum time window in seconds for indexing
|
|
type: number
|
|
|
|
/srch/index/search/service_logs:
|
|
get:
|
|
summary: Search through service logs with a string query
|
|
operationId: searchLogsIndex
|
|
tags:
|
|
- indexSearch
|
|
parameters:
|
|
- name: search_query
|
|
in: query
|
|
required: true
|
|
schema:
|
|
type: string
|
|
- name: mode
|
|
in: query
|
|
required: true
|
|
schema:
|
|
type: string
|
|
- name: worker_group
|
|
in: query
|
|
required: false
|
|
schema:
|
|
type: string
|
|
- name: hostname
|
|
in: query
|
|
required: true
|
|
schema:
|
|
type: string
|
|
- name: min_ts
|
|
in: query
|
|
required: false
|
|
schema:
|
|
type: string
|
|
format: date-time
|
|
- name: max_ts
|
|
in: query
|
|
required: false
|
|
schema:
|
|
type: string
|
|
format: date-time
|
|
responses:
|
|
"200":
|
|
description: search results
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
query_parse_errors:
|
|
description: a list of the terms that couldn't be parsed (and thus ignored)
|
|
type: array
|
|
items:
|
|
type: string
|
|
hits:
|
|
description: log files that matched the query
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/LogSearchHit"
|
|
|
|
/srch/index/search/count_service_logs:
|
|
get:
|
|
summary: Search and count the log line hits on every provided host
|
|
operationId: countSearchLogsIndex
|
|
tags:
|
|
- indexSearch
|
|
parameters:
|
|
- name: search_query
|
|
in: query
|
|
required: true
|
|
schema:
|
|
type: string
|
|
- name: min_ts
|
|
in: query
|
|
required: false
|
|
schema:
|
|
type: string
|
|
format: date-time
|
|
- name: max_ts
|
|
in: query
|
|
required: false
|
|
schema:
|
|
type: string
|
|
format: date-time
|
|
responses:
|
|
"200":
|
|
description: search results
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
query_parse_errors:
|
|
description: a list of the terms that couldn't be parsed (and thus ignored)
|
|
type: array
|
|
items:
|
|
type: string
|
|
count_per_host:
|
|
description: count of log lines that matched the query per hostname
|
|
type: object
|
|
|
|
/srch/index/storage/disk:
|
|
get:
|
|
summary: Get index disk storage sizes from the indexer.
|
|
operationId: getIndexDiskStorageSizes
|
|
tags:
|
|
- indexSearch
|
|
responses:
|
|
"200":
|
|
description: disk storage sizes for each index
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
job_index_disk_size_bytes:
|
|
type: integer
|
|
nullable: true
|
|
log_index_disk_size_bytes:
|
|
type: integer
|
|
nullable: true
|
|
|
|
/indexer/delete/{idx_name}:
|
|
delete:
|
|
summary: Clear an index and restart the indexer.
|
|
operationId: clearIndex
|
|
tags:
|
|
- indexSearch
|
|
parameters:
|
|
- name: idx_name
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
enum:
|
|
- JobIndex
|
|
- ServiceLogIndex
|
|
responses:
|
|
"200":
|
|
description: idx to be deleted and indexer restarting
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/indexer/storage:
|
|
get:
|
|
summary: Get index storage sizes (disk and S3).
|
|
operationId: getIndexStorageSizes
|
|
tags:
|
|
- indexSearch
|
|
responses:
|
|
"200":
|
|
description: storage sizes for each index
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
job_index:
|
|
type: object
|
|
properties:
|
|
disk_size_bytes:
|
|
type: integer
|
|
nullable: true
|
|
s3_size_bytes:
|
|
type: integer
|
|
nullable: true
|
|
service_log_index:
|
|
type: object
|
|
properties:
|
|
disk_size_bytes:
|
|
type: integer
|
|
nullable: true
|
|
s3_size_bytes:
|
|
type: integer
|
|
nullable: true
|
|
|
|
/indexer/status:
|
|
get:
|
|
summary: Get indexer status including liveness and storage sizes.
|
|
operationId: getIndexerStatus
|
|
tags:
|
|
- indexSearch
|
|
responses:
|
|
"200":
|
|
description: indexer status for each index
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
job_indexer:
|
|
type: object
|
|
properties:
|
|
is_alive:
|
|
type: boolean
|
|
last_locked_at:
|
|
type: string
|
|
format: date-time
|
|
nullable: true
|
|
owner:
|
|
type: string
|
|
nullable: true
|
|
storage:
|
|
type: object
|
|
properties:
|
|
disk_size_bytes:
|
|
type: integer
|
|
nullable: true
|
|
s3_size_bytes:
|
|
type: integer
|
|
nullable: true
|
|
log_indexer:
|
|
type: object
|
|
properties:
|
|
is_alive:
|
|
type: boolean
|
|
last_locked_at:
|
|
type: string
|
|
format: date-time
|
|
nullable: true
|
|
owner:
|
|
type: string
|
|
nullable: true
|
|
storage:
|
|
type: object
|
|
properties:
|
|
disk_size_bytes:
|
|
type: integer
|
|
nullable: true
|
|
s3_size_bytes:
|
|
type: integer
|
|
nullable: true
|
|
|
|
/w/{workspace}/assets/list:
|
|
get:
|
|
summary: List all assets in the workspace with cursor pagination
|
|
operationId: listAssets
|
|
tags:
|
|
- asset
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- name: per_page
|
|
in: query
|
|
description: Number of items per page (max 1000, default 50)
|
|
schema:
|
|
type: integer
|
|
default: 50
|
|
minimum: 1
|
|
maximum: 1000
|
|
- name: cursor_created_at
|
|
in: query
|
|
description: Cursor timestamp for pagination (created_at of last item from previous page)
|
|
schema:
|
|
type: string
|
|
format: date-time
|
|
- name: cursor_id
|
|
in: query
|
|
description: Cursor ID for pagination (id of last item from previous page)
|
|
schema:
|
|
type: integer
|
|
format: int64
|
|
- name: asset_path
|
|
in: query
|
|
description: Filter by asset path (case-insensitive partial match)
|
|
schema:
|
|
type: string
|
|
- name: usage_path
|
|
in: query
|
|
description: Filter by usage path (case-insensitive partial match)
|
|
schema:
|
|
type: string
|
|
- name: asset_kinds
|
|
in: query
|
|
description: Filter by asset kinds (multiple values allowed)
|
|
schema:
|
|
type: string
|
|
- name: path
|
|
in: query
|
|
description: exact path match filter
|
|
schema:
|
|
type: string
|
|
- name: columns
|
|
in: query
|
|
description: JSONB subset match filter for columns using base64 encoded JSON
|
|
schema:
|
|
type: string
|
|
- name: broad_filter
|
|
description: broad search across multiple fields (case-insensitive substring match)
|
|
in: query
|
|
schema:
|
|
type: string
|
|
responses:
|
|
"200":
|
|
description: paginated assets in the workspace
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
required: [assets]
|
|
properties:
|
|
assets:
|
|
type: array
|
|
items:
|
|
type: object
|
|
required: [path, kind, usages]
|
|
properties:
|
|
path:
|
|
type: string
|
|
kind:
|
|
$ref: "#/components/schemas/AssetKind"
|
|
usages:
|
|
type: array
|
|
items:
|
|
type: object
|
|
required: [path, kind]
|
|
properties:
|
|
path:
|
|
type: string
|
|
kind:
|
|
$ref: "#/components/schemas/AssetUsageKind"
|
|
access_type:
|
|
$ref: "#/components/schemas/AssetUsageAccessType"
|
|
columns:
|
|
type: object
|
|
description: The columns used (for tables)
|
|
additionalProperties:
|
|
$ref: "#/components/schemas/AssetUsageAccessType"
|
|
created_at:
|
|
type: string
|
|
format: date-time
|
|
description: When the asset was detected
|
|
metadata:
|
|
type: object
|
|
properties:
|
|
runnable_path:
|
|
type: string
|
|
description: The path of the script/flow that was run (only present when kind is 'job')
|
|
job_kind:
|
|
type: string
|
|
description: The kind of job (script, flow, preview, etc.) (only present when kind is 'job')
|
|
metadata:
|
|
type: object
|
|
properties:
|
|
resource_type:
|
|
type: string
|
|
description: The type of the resource (only present when kind is 'resource')
|
|
next_cursor:
|
|
type: object
|
|
description: Cursor for the next page (null if no more pages)
|
|
nullable: true
|
|
properties:
|
|
created_at:
|
|
type: string
|
|
format: date-time
|
|
description: Timestamp to use for next page
|
|
id:
|
|
type: integer
|
|
format: int64
|
|
description: ID to use for next page
|
|
|
|
/w/{workspace}/assets/list_by_usages:
|
|
post:
|
|
summary: List all assets used by given usages paths
|
|
operationId: listAssetsByUsage
|
|
tags:
|
|
- asset
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
requestBody:
|
|
description: list assets by usages
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
required: [usages]
|
|
properties:
|
|
usages:
|
|
type: array
|
|
items:
|
|
type: object
|
|
required: [path, kind]
|
|
properties:
|
|
path:
|
|
type: string
|
|
kind:
|
|
$ref: "#/components/schemas/AssetUsageKind"
|
|
responses:
|
|
"200":
|
|
description: all assets used by the given usage paths, in the same order
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
type: array
|
|
items:
|
|
type: object
|
|
required: [path, kind]
|
|
properties:
|
|
path:
|
|
type: string
|
|
kind:
|
|
$ref: "#/components/schemas/AssetKind"
|
|
access_type:
|
|
$ref: "#/components/schemas/AssetUsageAccessType"
|
|
|
|
/w/{workspace}/assets/list_favorites:
|
|
get:
|
|
summary: List all favorite assets for the authenticated user
|
|
operationId: listFavoriteAssets
|
|
tags:
|
|
- asset
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
responses:
|
|
"200":
|
|
description: list of favorite assets
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
type: object
|
|
required: [path]
|
|
properties:
|
|
path:
|
|
type: string
|
|
description: The asset path
|
|
|
|
/w/{workspace}/volumes/list:
|
|
get:
|
|
summary: List all volumes in the workspace
|
|
operationId: listVolumes
|
|
tags:
|
|
- volume
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
responses:
|
|
"200":
|
|
description: list of volumes
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/Volume"
|
|
|
|
/w/{workspace}/volumes/storage:
|
|
get:
|
|
summary: Get the volume storage name (secondary storage) or null for primary
|
|
operationId: getVolumeStorage
|
|
tags:
|
|
- volume
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
responses:
|
|
"200":
|
|
description: volume storage name or null
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: string
|
|
nullable: true
|
|
|
|
/w/{workspace}/volumes/create:
|
|
post:
|
|
summary: Create a new volume
|
|
operationId: createVolume
|
|
tags:
|
|
- volume
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- name
|
|
properties:
|
|
name:
|
|
type: string
|
|
responses:
|
|
"200":
|
|
description: volume created
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/volumes/delete/{name}:
|
|
delete:
|
|
summary: Delete a volume (admin only)
|
|
operationId: deleteVolume
|
|
tags:
|
|
- volume
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- name: name
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
responses:
|
|
"200":
|
|
description: volume deleted
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/mcp/w/{workspace}/list_tools:
|
|
get:
|
|
summary: list available MCP tools
|
|
operationId: listMcpTools
|
|
tags:
|
|
- mcp
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
responses:
|
|
"200":
|
|
description: list of MCP tools available for the workspace
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/EndpointTool"
|
|
|
|
/mcp/oauth/discover:
|
|
post:
|
|
summary: discover MCP server OAuth metadata
|
|
operationId: discoverMcpOAuth
|
|
tags:
|
|
- mcp_oauth
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- mcp_server_url
|
|
properties:
|
|
mcp_server_url:
|
|
type: string
|
|
description: URL of the MCP server to discover OAuth metadata from
|
|
responses:
|
|
"200":
|
|
description: OAuth metadata from MCP server
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
scopes_supported:
|
|
type: array
|
|
items:
|
|
type: string
|
|
authorization_endpoint:
|
|
type: string
|
|
token_endpoint:
|
|
type: string
|
|
registration_endpoint:
|
|
type: string
|
|
supports_dynamic_registration:
|
|
type: boolean
|
|
|
|
/mcp/oauth/start:
|
|
get:
|
|
summary: start MCP OAuth popup flow
|
|
description: Opens in a popup, discovers OAuth metadata, registers client, and redirects to OAuth provider
|
|
operationId: startMcpOAuthPopup
|
|
tags:
|
|
- mcp_oauth
|
|
parameters:
|
|
- name: mcp_server_url
|
|
in: query
|
|
required: true
|
|
schema:
|
|
type: string
|
|
description: URL of the MCP server to connect to
|
|
- name: scopes
|
|
in: query
|
|
required: false
|
|
schema:
|
|
type: string
|
|
description: Comma-separated list of OAuth scopes to request
|
|
responses:
|
|
"302":
|
|
description: Redirect to OAuth provider authorization URL
|
|
|
|
/mcp/oauth/callback:
|
|
get:
|
|
security: []
|
|
summary: MCP OAuth callback
|
|
description: Handles OAuth callback, exchanges code for tokens, returns HTML that posts message to opener
|
|
operationId: mcpOAuthCallback
|
|
tags:
|
|
- mcp_oauth
|
|
parameters:
|
|
- name: code
|
|
in: query
|
|
required: true
|
|
schema:
|
|
type: string
|
|
description: OAuth authorization code
|
|
- name: state
|
|
in: query
|
|
required: true
|
|
schema:
|
|
type: string
|
|
description: CSRF state token
|
|
responses:
|
|
"200":
|
|
description: HTML page with JavaScript that posts tokens to opener window and closes
|
|
content:
|
|
text/html:
|
|
schema:
|
|
type: string
|
|
|
|
components:
|
|
securitySchemes:
|
|
bearerAuth:
|
|
type: http
|
|
scheme: bearer
|
|
cookieAuth:
|
|
type: apiKey
|
|
in: cookie
|
|
name: token
|
|
|
|
parameters:
|
|
Id:
|
|
name: id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
Key:
|
|
name: key
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
WorkspaceId:
|
|
name: workspace
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
PublicationName:
|
|
name: publication
|
|
in: path
|
|
required: true
|
|
description: The name of the publication
|
|
schema:
|
|
type: string
|
|
VersionId:
|
|
name: version
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: number
|
|
Token:
|
|
name: token
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
AccountId:
|
|
name: id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: integer
|
|
ClientName:
|
|
name: client_name
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
ScriptPath:
|
|
name: path
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
ScriptHash:
|
|
name: hash
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
JobId:
|
|
name: id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
format: uuid
|
|
Path:
|
|
name: path
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
CustomPath:
|
|
name: custom_path
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
PathId:
|
|
name: id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: integer
|
|
PathVersion:
|
|
name: version
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: integer
|
|
Name:
|
|
name: name
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
Page:
|
|
name: page
|
|
description: which page to return (start at 1, default 1)
|
|
in: query
|
|
schema:
|
|
type: integer
|
|
PerPage:
|
|
name: per_page
|
|
description: number of items to return for a given page (default 30, max 100)
|
|
in: query
|
|
schema:
|
|
type: integer
|
|
JobTriggerKind:
|
|
name: trigger_kind
|
|
description: "filter by trigger kind. Supports comma-separated list (e.g. 'schedule,webhook') and negation by prefixing all values with '!' (e.g. '!schedule,!webhook')"
|
|
in: query
|
|
x-go-name: JobTriggerKindParam
|
|
schema:
|
|
type: string
|
|
OrderDesc:
|
|
name: order_desc
|
|
description: order by desc order (default true)
|
|
in: query
|
|
schema:
|
|
type: boolean
|
|
CreatedBy:
|
|
name: created_by
|
|
description: "filter by exact matching user creator. Supports comma-separated list (e.g. 'alice,bob') and negation by prefixing all values with '!' (e.g. '!alice,!bob')"
|
|
in: query
|
|
schema:
|
|
type: string
|
|
Label:
|
|
name: label
|
|
description: "filter by exact matching job label. Supports comma-separated list (e.g. 'deploy,release') and negation by prefixing all values with '!' (e.g. '!deploy,!release')"
|
|
in: query
|
|
schema:
|
|
type: string
|
|
Worker:
|
|
name: worker
|
|
description: "filter by worker this job ran on. Supports comma-separated list (e.g. 'worker-1,worker-2') and negation by prefixing all values with '!' (e.g. '!worker-1,!worker-2')"
|
|
in: query
|
|
schema:
|
|
type: string
|
|
ParentJob:
|
|
name: parent_job
|
|
description:
|
|
The parent job that is at the origin and responsible for the execution
|
|
of this script if any
|
|
in: query
|
|
schema:
|
|
type: string
|
|
format: uuid
|
|
WorkerTag:
|
|
name: tag
|
|
description: Override the tag to use
|
|
in: query
|
|
schema:
|
|
type: string
|
|
CacheTtl:
|
|
name: cache_ttl
|
|
description: Override the cache time to live (in seconds). Can not be used to disable caching, only override with a new cache ttl
|
|
in: query
|
|
schema:
|
|
type: string
|
|
NewJobId:
|
|
name: job_id
|
|
description:
|
|
The job id to assign to the created job. if missing, job is chosen
|
|
randomly using the ULID scheme. If a job id already exists in the queue
|
|
or as a completed job, the request to create one will fail (Bad Request)
|
|
in: query
|
|
schema:
|
|
type: string
|
|
format: uuid
|
|
IncludeHeader:
|
|
name: include_header
|
|
description: |
|
|
List of headers's keys (separated with ',') whove value are added to the args
|
|
Header's key lowercased and '-'' replaced to '_' such that 'Content-Type' becomes the 'content_type' arg key
|
|
in: query
|
|
schema:
|
|
type: string
|
|
QueueLimit:
|
|
name: queue_limit
|
|
description: |
|
|
The maximum size of the queue for which the request would get rejected if that job would push it above that limit
|
|
in: query
|
|
schema:
|
|
type: string
|
|
SkipPreprocessor:
|
|
name: skip_preprocessor
|
|
description: skip the preprocessor
|
|
in: query
|
|
schema:
|
|
type: boolean
|
|
Payload:
|
|
name: payload
|
|
description: |
|
|
The base64 encoded payload that has been encoded as a JSON. e.g how to encode such payload encodeURIComponent
|
|
`encodeURIComponent(btoa(JSON.stringify({a: 2})))`
|
|
in: query
|
|
schema:
|
|
type: string
|
|
ScriptStartPath:
|
|
name: script_path_start
|
|
description: "filter by script path prefix. Supports comma-separated list (e.g. 'f/folder1,f/folder2') and negation by prefixing all values with '!' (e.g. '!f/folder1,!f/folder2')"
|
|
in: query
|
|
schema:
|
|
type: string
|
|
SchedulePath:
|
|
name: schedule_path
|
|
description: mask to filter by schedule path
|
|
in: query
|
|
schema:
|
|
type: string
|
|
TriggerPath:
|
|
name: trigger_path
|
|
description: "filter by trigger path. Supports comma-separated list (e.g. 'f/trigger1,f/trigger2') and negation by prefixing all values with '!' (e.g. '!f/trigger1,!f/trigger2')"
|
|
in: query
|
|
schema:
|
|
type: string
|
|
ScriptExactPath:
|
|
name: script_path_exact
|
|
description: "filter by exact matching script path. Supports comma-separated list (e.g. 'f/script1,f/script2') and negation by prefixing all values with '!' (e.g. '!f/script1,!f/script2')"
|
|
in: query
|
|
schema:
|
|
type: string
|
|
ScriptExactHash:
|
|
name: script_hash
|
|
description: mask to filter exact matching path
|
|
in: query
|
|
schema:
|
|
type: string
|
|
CreatedBefore:
|
|
name: created_before
|
|
description: filter on created before (inclusive) timestamp
|
|
in: query
|
|
schema:
|
|
type: string
|
|
format: date-time
|
|
CreatedAfter:
|
|
name: created_after
|
|
description: filter on created after (exclusive) timestamp
|
|
in: query
|
|
schema:
|
|
type: string
|
|
format: date-time
|
|
StartedBefore:
|
|
name: started_before
|
|
description: filter on started before (inclusive) timestamp
|
|
in: query
|
|
schema:
|
|
type: string
|
|
format: date-time
|
|
StartedAfter:
|
|
name: started_after
|
|
description: filter on started after (exclusive) timestamp
|
|
in: query
|
|
schema:
|
|
type: string
|
|
format: date-time
|
|
Before:
|
|
name: before
|
|
description: filter on started before (inclusive) timestamp
|
|
in: query
|
|
schema:
|
|
type: string
|
|
format: date-time
|
|
|
|
CompletedBefore:
|
|
name: completed_before
|
|
description: filter on started before (inclusive) timestamp
|
|
in: query
|
|
schema:
|
|
type: string
|
|
format: date-time
|
|
CompletedAfter:
|
|
name: completed_after
|
|
description: filter on started after (exclusive) timestamp
|
|
in: query
|
|
schema:
|
|
type: string
|
|
format: date-time
|
|
|
|
CreatedAfterQueue:
|
|
name: created_after_queue
|
|
description: filter on jobs created after X for jobs in the queue only
|
|
in: query
|
|
schema:
|
|
type: string
|
|
format: date-time
|
|
|
|
CreatedBeforeQueue:
|
|
name: created_before_queue
|
|
description: filter on jobs created before X for jobs in the queue only
|
|
in: query
|
|
schema:
|
|
type: string
|
|
format: date-time
|
|
|
|
Success:
|
|
name: success
|
|
description: filter on successful jobs
|
|
in: query
|
|
schema:
|
|
type: boolean
|
|
ScheduledForBeforeNow:
|
|
name: scheduled_for_before_now
|
|
description: filter on jobs scheduled_for before now (hence waitinf for a worker)
|
|
in: query
|
|
schema:
|
|
type: boolean
|
|
Suspended:
|
|
name: suspended
|
|
description: filter on suspended jobs
|
|
in: query
|
|
schema:
|
|
type: boolean
|
|
Running:
|
|
name: running
|
|
description: filter on running jobs
|
|
in: query
|
|
schema:
|
|
type: boolean
|
|
AllowWildcards:
|
|
name: allow_wildcards
|
|
description: allow wildcards (*) in the filter of label, tag, worker
|
|
in: query
|
|
schema:
|
|
type: boolean
|
|
ArgsFilter:
|
|
name: args
|
|
description: filter on jobs containing those args as a json subset (@> in postgres)
|
|
in: query
|
|
schema:
|
|
type: string
|
|
Tag:
|
|
name: tag
|
|
description: "filter by tag/worker group. Supports comma-separated list (e.g. 'gpu,highmem') and negation by prefixing all values with '!' (e.g. '!gpu,!highmem')"
|
|
in: query
|
|
schema:
|
|
type: string
|
|
ResultFilter:
|
|
name: result
|
|
description: filter on jobs containing those result as a json subset (@> in postgres)
|
|
in: query
|
|
schema:
|
|
type: string
|
|
After:
|
|
name: after
|
|
description: filter on created after (exclusive) timestamp
|
|
in: query
|
|
schema:
|
|
type: string
|
|
format: date-time
|
|
Username:
|
|
name: username
|
|
description: filter on exact username of user
|
|
in: query
|
|
schema:
|
|
type: string
|
|
Operation:
|
|
name: operation
|
|
description: filter on exact or prefix name of operation
|
|
in: query
|
|
schema:
|
|
type: string
|
|
ResourceName:
|
|
name: resource
|
|
description: filter on exact or prefix name of resource
|
|
in: query
|
|
schema:
|
|
type: string
|
|
ActionKind:
|
|
name: action_kind
|
|
description: filter on type of operation
|
|
in: query
|
|
schema:
|
|
type: string
|
|
enum: [Create, Update, Delete, Execute]
|
|
JobKinds:
|
|
name: job_kinds
|
|
description: "filter by job kind. Supports comma-separated list of values ('preview', 'script', 'dependencies', 'flow') and negation by prefixing all values with '!' (e.g. '!preview,!dependencies')"
|
|
in: query
|
|
schema:
|
|
type: string
|
|
# correct type is below but explode not supported by our codegen
|
|
# type: array
|
|
# items:
|
|
# type: string
|
|
# enum: ["preview", "script", "dependencies"]
|
|
# explode: false
|
|
RunnableId:
|
|
name: runnable_id
|
|
in: query
|
|
schema:
|
|
type: string
|
|
RunnableTypeQuery:
|
|
name: runnable_type
|
|
in: query
|
|
schema:
|
|
$ref: "#/components/schemas/RunnableType"
|
|
InputId:
|
|
name: input
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
GetStarted:
|
|
name: get_started
|
|
in: query
|
|
schema:
|
|
type: boolean
|
|
ConcurrencyId:
|
|
name: concurrency_id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
RunnableKind:
|
|
name: runnable_kind
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
enum: [script, flow]
|
|
|
|
schemas:
|
|
# NOTE: Not so many generators and validators support this format:
|
|
# $ref: "../../openflow.openapi.yaml#/components/schemas"
|
|
# This is why it is better to inline each of schemas for better compat
|
|
# Do not change next line. It is used by python-client for pre-processing
|
|
# -- INLINE START --
|
|
OpenFlow:
|
|
$ref: "../../openflow.openapi.yaml#/components/schemas/OpenFlow"
|
|
FlowValue:
|
|
$ref: "../../openflow.openapi.yaml#/components/schemas/FlowValue"
|
|
Retry:
|
|
$ref: "../../openflow.openapi.yaml#/components/schemas/Retry"
|
|
StopAfterIf:
|
|
$ref: "../../openflow.openapi.yaml#/components/schemas/StopAfterIf"
|
|
FlowModule:
|
|
$ref: "../../openflow.openapi.yaml#/components/schemas/FlowModule"
|
|
InputTransform:
|
|
$ref: "../../openflow.openapi.yaml#/components/schemas/InputTransform"
|
|
StaticTransform:
|
|
$ref: "../../openflow.openapi.yaml#/components/schemas/StaticTransform"
|
|
JavascriptTransform:
|
|
$ref: "../../openflow.openapi.yaml#/components/schemas/JavascriptTransform"
|
|
AiTransform:
|
|
$ref: "../../openflow.openapi.yaml#/components/schemas/AiTransform"
|
|
ProviderConfig:
|
|
$ref: "../../openflow.openapi.yaml#/components/schemas/ProviderConfig"
|
|
MemoryConfig:
|
|
$ref: "../../openflow.openapi.yaml#/components/schemas/MemoryConfig"
|
|
FlowModuleValue:
|
|
$ref: "../../openflow.openapi.yaml#/components/schemas/FlowModuleValue"
|
|
RawScript:
|
|
$ref: "../../openflow.openapi.yaml#/components/schemas/RawScript"
|
|
PathScript:
|
|
$ref: "../../openflow.openapi.yaml#/components/schemas/PathScript"
|
|
PathFlow:
|
|
$ref: "../../openflow.openapi.yaml#/components/schemas/PathFlow"
|
|
ForloopFlow:
|
|
$ref: "../../openflow.openapi.yaml#/components/schemas/ForloopFlow"
|
|
WhileloopFlow:
|
|
$ref: "../../openflow.openapi.yaml#/components/schemas/WhileloopFlow"
|
|
BranchOne:
|
|
$ref: "../../openflow.openapi.yaml#/components/schemas/BranchOne"
|
|
BranchAll:
|
|
$ref: "../../openflow.openapi.yaml#/components/schemas/BranchAll"
|
|
AiAgent:
|
|
$ref: "../../openflow.openapi.yaml#/components/schemas/AiAgent"
|
|
Identity:
|
|
$ref: "../../openflow.openapi.yaml#/components/schemas/Identity"
|
|
FlowStatus:
|
|
$ref: "../../openflow.openapi.yaml#/components/schemas/FlowStatus"
|
|
FlowStatusModule:
|
|
$ref: "../../openflow.openapi.yaml#/components/schemas/FlowStatusModule"
|
|
FlowNote:
|
|
$ref: "../../openflow.openapi.yaml#/components/schemas/FlowNote"
|
|
# -- INLINE END --
|
|
# Do not change line above
|
|
|
|
HealthStatusResponse:
|
|
type: object
|
|
description: Health status response (cached with 5s TTL)
|
|
required:
|
|
- status
|
|
- checked_at
|
|
- database_healthy
|
|
- workers_alive
|
|
properties:
|
|
status:
|
|
type: string
|
|
enum: [healthy, degraded, unhealthy]
|
|
description: Overall health status
|
|
checked_at:
|
|
type: string
|
|
format: date-time
|
|
description: Timestamp when the health check was actually performed (not cache return time)
|
|
database_healthy:
|
|
type: boolean
|
|
description: Whether the database is reachable
|
|
workers_alive:
|
|
type: integer
|
|
format: int64
|
|
description: Number of workers that pinged within last 5 minutes
|
|
|
|
DetailedHealthResponse:
|
|
type: object
|
|
description: Detailed health status response (always fresh, no caching)
|
|
required:
|
|
- status
|
|
- checked_at
|
|
- version
|
|
- checks
|
|
properties:
|
|
status:
|
|
type: string
|
|
enum: [healthy, degraded, unhealthy]
|
|
description: Overall health status
|
|
checked_at:
|
|
type: string
|
|
format: date-time
|
|
description: Timestamp when the health check was performed
|
|
version:
|
|
type: string
|
|
description: Server version (e.g., "EE 1.615.3")
|
|
checks:
|
|
$ref: "#/components/schemas/HealthChecks"
|
|
|
|
HealthChecks:
|
|
type: object
|
|
description: Detailed health checks
|
|
required:
|
|
- database
|
|
- readiness
|
|
properties:
|
|
database:
|
|
$ref: "#/components/schemas/DatabaseHealth"
|
|
workers:
|
|
$ref: "#/components/schemas/WorkersHealth"
|
|
description: Worker status (null if database is unreachable)
|
|
nullable: true
|
|
queue:
|
|
$ref: "#/components/schemas/QueueHealth"
|
|
description: Queue status (null if database is unreachable)
|
|
nullable: true
|
|
readiness:
|
|
$ref: "#/components/schemas/ReadinessHealth"
|
|
|
|
DatabaseHealth:
|
|
type: object
|
|
description: Database health status
|
|
required:
|
|
- healthy
|
|
- latency_ms
|
|
- pool
|
|
properties:
|
|
healthy:
|
|
type: boolean
|
|
description: Whether the database is reachable
|
|
latency_ms:
|
|
type: integer
|
|
format: int64
|
|
description: Database query latency in milliseconds
|
|
pool:
|
|
$ref: "#/components/schemas/PoolStats"
|
|
|
|
PoolStats:
|
|
type: object
|
|
description: Database connection pool statistics
|
|
required:
|
|
- size
|
|
- idle
|
|
- max_connections
|
|
properties:
|
|
size:
|
|
type: integer
|
|
description: Current number of connections in the pool
|
|
idle:
|
|
type: integer
|
|
description: Number of idle connections
|
|
max_connections:
|
|
type: integer
|
|
description: Maximum number of connections allowed
|
|
|
|
WorkersHealth:
|
|
type: object
|
|
description: Workers health status
|
|
required:
|
|
- healthy
|
|
- active_count
|
|
- worker_groups
|
|
- min_version
|
|
- versions
|
|
properties:
|
|
healthy:
|
|
type: boolean
|
|
description: Whether any workers are active
|
|
active_count:
|
|
type: integer
|
|
format: int64
|
|
description: Number of active workers (pinged in last 5 minutes)
|
|
worker_groups:
|
|
type: array
|
|
items:
|
|
type: string
|
|
description: List of active worker groups
|
|
min_version:
|
|
type: string
|
|
description: Minimum required worker version
|
|
versions:
|
|
type: array
|
|
items:
|
|
type: string
|
|
description: List of active worker versions
|
|
|
|
QueueHealth:
|
|
type: object
|
|
description: Job queue status
|
|
required:
|
|
- pending_jobs
|
|
- running_jobs
|
|
properties:
|
|
pending_jobs:
|
|
type: integer
|
|
format: int64
|
|
description: Number of pending jobs in the queue
|
|
running_jobs:
|
|
type: integer
|
|
format: int64
|
|
description: Number of currently running jobs
|
|
|
|
ReadinessHealth:
|
|
type: object
|
|
description: Server readiness status
|
|
required:
|
|
- healthy
|
|
properties:
|
|
healthy:
|
|
type: boolean
|
|
description: Whether the server is ready to accept requests
|
|
|
|
AutoInviteConfig:
|
|
type: object
|
|
description: Configuration for auto-inviting users to the workspace
|
|
properties:
|
|
enabled:
|
|
type: boolean
|
|
default: false
|
|
domain:
|
|
type: string
|
|
operator:
|
|
type: boolean
|
|
default: false
|
|
description: If true, auto-invited users are added as operators. If false, they are added as developers.
|
|
mode:
|
|
type: string
|
|
enum: ["invite", "add"]
|
|
default: "invite"
|
|
instance_groups:
|
|
type: array
|
|
items:
|
|
type: string
|
|
instance_groups_roles:
|
|
type: object
|
|
additionalProperties:
|
|
type: string
|
|
|
|
ErrorHandlerConfig:
|
|
type: object
|
|
description: Configuration for the workspace error handler
|
|
properties:
|
|
path:
|
|
type: string
|
|
description: Path to the error handler script or flow
|
|
extra_args:
|
|
$ref: "#/components/schemas/ScriptArgs"
|
|
muted_on_cancel:
|
|
type: boolean
|
|
default: false
|
|
muted_on_user_path:
|
|
type: boolean
|
|
default: false
|
|
|
|
SuccessHandlerConfig:
|
|
type: object
|
|
description: Configuration for the workspace success handler
|
|
properties:
|
|
path:
|
|
type: string
|
|
description: Path to the success handler script or flow
|
|
extra_args:
|
|
$ref: "#/components/schemas/ScriptArgs"
|
|
|
|
EditErrorHandler:
|
|
description: Request body for editing the workspace error handler. Accepts both new grouped format and legacy flat format for backward compatibility.
|
|
oneOf:
|
|
- $ref: "#/components/schemas/EditErrorHandlerNew"
|
|
- $ref: "#/components/schemas/EditErrorHandlerLegacy"
|
|
|
|
EditErrorHandlerNew:
|
|
type: object
|
|
description: New grouped format for editing error handler
|
|
properties:
|
|
path:
|
|
type: string
|
|
description: Path to the error handler script or flow
|
|
extra_args:
|
|
$ref: "#/components/schemas/ScriptArgs"
|
|
muted_on_cancel:
|
|
type: boolean
|
|
default: false
|
|
muted_on_user_path:
|
|
type: boolean
|
|
default: false
|
|
|
|
EditErrorHandlerLegacy:
|
|
type: object
|
|
description: Legacy flat format for editing error handler (deprecated, use new format)
|
|
properties:
|
|
error_handler:
|
|
type: string
|
|
description: Path to the error handler script or flow
|
|
error_handler_extra_args:
|
|
$ref: "#/components/schemas/ScriptArgs"
|
|
error_handler_muted_on_cancel:
|
|
type: boolean
|
|
default: false
|
|
|
|
EditSuccessHandler:
|
|
description: Request body for editing the workspace success handler. Accepts both new grouped format and legacy flat format for backward compatibility.
|
|
oneOf:
|
|
- $ref: "#/components/schemas/EditSuccessHandlerNew"
|
|
- $ref: "#/components/schemas/EditSuccessHandlerLegacy"
|
|
|
|
EditSuccessHandlerNew:
|
|
type: object
|
|
description: New grouped format for editing success handler
|
|
properties:
|
|
path:
|
|
type: string
|
|
description: Path to the success handler script or flow
|
|
extra_args:
|
|
$ref: "#/components/schemas/ScriptArgs"
|
|
|
|
EditSuccessHandlerLegacy:
|
|
type: object
|
|
description: Legacy flat format for editing success handler (deprecated, use new format)
|
|
properties:
|
|
success_handler:
|
|
type: string
|
|
description: Path to the success handler script or flow
|
|
success_handler_extra_args:
|
|
$ref: "#/components/schemas/ScriptArgs"
|
|
|
|
VaultSettings:
|
|
type: object
|
|
required:
|
|
- address
|
|
- mount_path
|
|
properties:
|
|
address:
|
|
type: string
|
|
description: HashiCorp Vault server address (e.g., https://vault.company.com:8200)
|
|
mount_path:
|
|
type: string
|
|
description: KV v2 secrets engine mount path (e.g., windmill)
|
|
jwt_role:
|
|
type: string
|
|
description: Vault JWT auth role name for Windmill (optional, if not provided token auth is used)
|
|
namespace:
|
|
type: string
|
|
description: Vault Enterprise namespace (optional)
|
|
token:
|
|
type: string
|
|
description: Static Vault token for testing/development (optional, if provided this is used instead of JWT authentication)
|
|
|
|
AzureKeyVaultSettings:
|
|
type: object
|
|
required:
|
|
- vault_url
|
|
- tenant_id
|
|
- client_id
|
|
properties:
|
|
vault_url:
|
|
type: string
|
|
description: Azure Key Vault URL (e.g., https://myvault.vault.azure.net)
|
|
tenant_id:
|
|
type: string
|
|
description: Azure AD tenant ID
|
|
client_id:
|
|
type: string
|
|
description: Azure AD application (client) ID
|
|
client_secret:
|
|
type: string
|
|
description: Azure AD client secret
|
|
token:
|
|
type: string
|
|
description: Static Bearer token for testing/development (optional, if provided this is used instead of OAuth2 authentication)
|
|
|
|
AwsSecretsManagerSettings:
|
|
type: object
|
|
required:
|
|
- region
|
|
properties:
|
|
region:
|
|
type: string
|
|
description: AWS region (e.g., us-east-1)
|
|
access_key_id:
|
|
type: string
|
|
description: AWS Access Key ID (optional, uses default credential chain if not provided)
|
|
secret_access_key:
|
|
type: string
|
|
description: AWS Secret Access Key (optional)
|
|
endpoint_url:
|
|
type: string
|
|
description: Custom endpoint URL for testing (e.g., LocalStack)
|
|
prefix:
|
|
type: string
|
|
description: Prefix for secret names (e.g., windmill/)
|
|
|
|
SecretMigrationFailure:
|
|
type: object
|
|
required:
|
|
- workspace_id
|
|
- path
|
|
- error
|
|
properties:
|
|
workspace_id:
|
|
type: string
|
|
description: Workspace ID where the secret is located
|
|
path:
|
|
type: string
|
|
description: Path of the secret that failed to migrate
|
|
error:
|
|
type: string
|
|
description: Error message
|
|
|
|
SecretMigrationReport:
|
|
type: object
|
|
required:
|
|
- total_secrets
|
|
- migrated_count
|
|
- failed_count
|
|
- failures
|
|
properties:
|
|
total_secrets:
|
|
type: integer
|
|
format: int64
|
|
description: Total number of secrets found
|
|
migrated_count:
|
|
type: integer
|
|
format: int64
|
|
description: Number of secrets successfully migrated
|
|
failed_count:
|
|
type: integer
|
|
format: int64
|
|
description: Number of secrets that failed to migrate
|
|
failures:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/SecretMigrationFailure"
|
|
description: Details of any failures encountered during migration
|
|
|
|
JwksResponse:
|
|
type: object
|
|
required:
|
|
- keys
|
|
properties:
|
|
keys:
|
|
type: array
|
|
items:
|
|
type: object
|
|
additionalProperties: true
|
|
description: Array of JSON Web Keys for JWT verification
|
|
|
|
FlowConversation:
|
|
type: object
|
|
required:
|
|
[id, workspace_id, flow_path, created_at, updated_at, created_by]
|
|
properties:
|
|
id:
|
|
type: string
|
|
format: uuid
|
|
description: Unique identifier for the conversation
|
|
workspace_id:
|
|
type: string
|
|
description: The workspace ID where the conversation belongs
|
|
flow_path:
|
|
type: string
|
|
description: Path of the flow this conversation is for
|
|
title:
|
|
type: string
|
|
description: Optional title for the conversation
|
|
nullable: true
|
|
created_at:
|
|
type: string
|
|
format: date-time
|
|
description: When the conversation was created
|
|
updated_at:
|
|
type: string
|
|
format: date-time
|
|
description: When the conversation was last updated
|
|
created_by:
|
|
type: string
|
|
description: Username who created the conversation
|
|
|
|
FlowConversationMessage:
|
|
type: object
|
|
required: [id, conversation_id, message_type, content, created_at]
|
|
properties:
|
|
id:
|
|
type: string
|
|
format: uuid
|
|
description: Unique identifier for the message
|
|
conversation_id:
|
|
type: string
|
|
format: uuid
|
|
description: The conversation this message belongs to
|
|
message_type:
|
|
type: string
|
|
enum: [user, assistant, system, tool]
|
|
description: Type of the message
|
|
content:
|
|
type: string
|
|
description: The message content
|
|
job_id:
|
|
type: string
|
|
format: uuid
|
|
nullable: true
|
|
description: Associated job ID if this message came from a flow run
|
|
created_at:
|
|
type: string
|
|
format: date-time
|
|
description: When the message was created
|
|
step_name:
|
|
type: string
|
|
description: The step name that produced that message
|
|
success:
|
|
type: boolean
|
|
description: Whether the message is a success
|
|
|
|
EndpointTool:
|
|
type: object
|
|
required: [name, description, instructions, path, method]
|
|
properties:
|
|
name:
|
|
type: string
|
|
description: The tool name/operation ID
|
|
description:
|
|
type: string
|
|
description: Short description of the tool
|
|
instructions:
|
|
type: string
|
|
description: Detailed instructions for using the tool
|
|
path:
|
|
type: string
|
|
description: API endpoint path
|
|
method:
|
|
type: string
|
|
description: HTTP method (GET, POST, etc.)
|
|
path_params_schema:
|
|
type: object
|
|
description: JSON schema for path parameters
|
|
nullable: true
|
|
query_params_schema:
|
|
type: object
|
|
description: JSON schema for query parameters
|
|
nullable: true
|
|
body_schema:
|
|
type: object
|
|
description: JSON schema for request body
|
|
nullable: true
|
|
|
|
AIProvider:
|
|
type: string
|
|
enum:
|
|
[
|
|
openai,
|
|
azure_openai,
|
|
anthropic,
|
|
mistral,
|
|
deepseek,
|
|
googleai,
|
|
groq,
|
|
openrouter,
|
|
togetherai,
|
|
aws_bedrock,
|
|
customai,
|
|
]
|
|
|
|
GitSyncObjectType:
|
|
type: string
|
|
enum:
|
|
- script
|
|
- flow
|
|
- app
|
|
- folder
|
|
- resource
|
|
- variable
|
|
- secret
|
|
- resourcetype
|
|
- schedule
|
|
- user
|
|
- group
|
|
- trigger
|
|
- settings
|
|
- key
|
|
- workspacedependencies
|
|
|
|
AIProviderModel:
|
|
type: object
|
|
properties:
|
|
model:
|
|
type: string
|
|
provider:
|
|
$ref: "#/components/schemas/AIProvider"
|
|
required:
|
|
- model
|
|
- provider
|
|
|
|
AIProviderConfig:
|
|
type: object
|
|
properties:
|
|
resource_path:
|
|
type: string
|
|
models:
|
|
type: array
|
|
items:
|
|
type: string
|
|
required:
|
|
- resource_path
|
|
- models
|
|
|
|
AIConfig:
|
|
type: object
|
|
properties:
|
|
providers:
|
|
type: object
|
|
additionalProperties:
|
|
$ref: "#/components/schemas/AIProviderConfig"
|
|
default_model:
|
|
$ref: "#/components/schemas/AIProviderModel"
|
|
code_completion_model:
|
|
$ref: "#/components/schemas/AIProviderModel"
|
|
custom_prompts:
|
|
type: object
|
|
additionalProperties:
|
|
type: string
|
|
max_tokens_per_model:
|
|
type: object
|
|
additionalProperties:
|
|
type: integer
|
|
minimum: 1
|
|
maximum: 2000000
|
|
|
|
InstanceAIProviderSummary:
|
|
type: object
|
|
properties:
|
|
provider:
|
|
$ref: "#/components/schemas/AIProvider"
|
|
models:
|
|
type: array
|
|
items:
|
|
type: string
|
|
required:
|
|
- provider
|
|
- models
|
|
|
|
InstanceAISummary:
|
|
type: object
|
|
properties:
|
|
providers:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/InstanceAIProviderSummary"
|
|
default_model:
|
|
$ref: "#/components/schemas/AIProviderModel"
|
|
code_completion_model:
|
|
$ref: "#/components/schemas/AIProviderModel"
|
|
required:
|
|
- providers
|
|
|
|
Alert:
|
|
type: object
|
|
properties:
|
|
name:
|
|
type: string
|
|
tags_to_monitor:
|
|
type: array
|
|
items:
|
|
type: string
|
|
jobs_num_threshold:
|
|
type: integer
|
|
alert_cooldown_seconds:
|
|
type: integer
|
|
alert_time_threshold_seconds:
|
|
type: integer
|
|
required:
|
|
- name
|
|
- tags_to_monitor
|
|
- jobs_num_threshold
|
|
- alert_cooldown_seconds
|
|
- alert_time_threshold_seconds
|
|
|
|
Configs:
|
|
type: object
|
|
nullable: true
|
|
properties:
|
|
alerts:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/Alert"
|
|
|
|
WorkspaceDependencies:
|
|
type: object
|
|
properties:
|
|
id:
|
|
type: integer
|
|
archived:
|
|
type: boolean
|
|
name:
|
|
type: string
|
|
description:
|
|
type: string
|
|
content:
|
|
type: string
|
|
language:
|
|
$ref: "#/components/schemas/ScriptLang"
|
|
workspace_id:
|
|
type: string
|
|
created_at:
|
|
type: string
|
|
format: date-time
|
|
required:
|
|
- workspace_id
|
|
- language
|
|
- created_at
|
|
- content
|
|
- id
|
|
- archived
|
|
|
|
NewWorkspaceDependencies:
|
|
type: object
|
|
properties:
|
|
workspace_id:
|
|
type: string
|
|
language:
|
|
$ref: "#/components/schemas/ScriptLang"
|
|
name:
|
|
type: string
|
|
description:
|
|
type: string
|
|
content:
|
|
type: string
|
|
required:
|
|
- workspace_id
|
|
- language
|
|
- content
|
|
|
|
Script:
|
|
type: object
|
|
properties:
|
|
workspace_id:
|
|
type: string
|
|
hash:
|
|
type: string
|
|
path:
|
|
type: string
|
|
parent_hashes:
|
|
type: array
|
|
description: |
|
|
The first element is the direct parent of the script, the second is the parent of the first, etc
|
|
items:
|
|
type: string
|
|
summary:
|
|
type: string
|
|
description:
|
|
type: string
|
|
content:
|
|
type: string
|
|
created_by:
|
|
type: string
|
|
created_at:
|
|
type: string
|
|
format: date-time
|
|
archived:
|
|
type: boolean
|
|
schema:
|
|
type: object
|
|
deleted:
|
|
type: boolean
|
|
is_template:
|
|
type: boolean
|
|
extra_perms:
|
|
type: object
|
|
additionalProperties:
|
|
type: boolean
|
|
lock:
|
|
type: string
|
|
lock_error_logs:
|
|
type: string
|
|
language:
|
|
$ref: "#/components/schemas/ScriptLang"
|
|
kind:
|
|
type: string
|
|
enum: [script, failure, trigger, command, approval, preprocessor]
|
|
starred:
|
|
type: boolean
|
|
tag:
|
|
type: string
|
|
has_draft:
|
|
type: boolean
|
|
draft_only:
|
|
type: boolean
|
|
envs:
|
|
type: array
|
|
items:
|
|
type: string
|
|
concurrent_limit:
|
|
type: integer
|
|
concurrency_time_window_s:
|
|
type: integer
|
|
concurrency_key:
|
|
type: string
|
|
debounce_key:
|
|
type: string
|
|
debounce_delay_s:
|
|
type: integer
|
|
debounce_args_to_accumulate:
|
|
type: array
|
|
items:
|
|
type: string
|
|
max_total_debouncing_time:
|
|
type: integer
|
|
max_total_debounces_amount:
|
|
type: integer
|
|
cache_ttl:
|
|
type: number
|
|
dedicated_worker:
|
|
type: boolean
|
|
ws_error_handler_muted:
|
|
type: boolean
|
|
priority:
|
|
type: integer
|
|
restart_unless_cancelled:
|
|
type: boolean
|
|
timeout:
|
|
type: integer
|
|
delete_after_secs:
|
|
type: integer
|
|
description: If set, delete the job's args, result and logs after this many seconds following job completion
|
|
visible_to_runner_only:
|
|
type: boolean
|
|
auto_kind:
|
|
type: string
|
|
codebase:
|
|
type: string
|
|
has_preprocessor:
|
|
type: boolean
|
|
on_behalf_of_email:
|
|
type: string
|
|
modules:
|
|
type: object
|
|
nullable: true
|
|
description: "Additional script modules keyed by relative file path"
|
|
additionalProperties:
|
|
$ref: "#/components/schemas/ScriptModule"
|
|
labels:
|
|
type: array
|
|
items:
|
|
type: string
|
|
default: []
|
|
|
|
required:
|
|
- hash
|
|
- path
|
|
- summary
|
|
- description
|
|
- content
|
|
- created_by
|
|
- created_at
|
|
- archived
|
|
- deleted
|
|
- is_template
|
|
- extra_perms
|
|
- language
|
|
- kind
|
|
- starred
|
|
- has_preprocessor
|
|
|
|
|
|
NewScript:
|
|
type: object
|
|
properties:
|
|
path:
|
|
type: string
|
|
parent_hash:
|
|
type: string
|
|
summary:
|
|
type: string
|
|
description:
|
|
type: string
|
|
content:
|
|
type: string
|
|
schema:
|
|
type: object
|
|
is_template:
|
|
type: boolean
|
|
lock:
|
|
type: string
|
|
language:
|
|
$ref: "#/components/schemas/ScriptLang"
|
|
kind:
|
|
type: string
|
|
enum: [script, failure, trigger, command, approval, preprocessor]
|
|
tag:
|
|
type: string
|
|
draft_only:
|
|
type: boolean
|
|
envs:
|
|
type: array
|
|
items:
|
|
type: string
|
|
concurrent_limit:
|
|
type: integer
|
|
concurrency_time_window_s:
|
|
type: integer
|
|
cache_ttl:
|
|
type: number
|
|
cache_ignore_s3_path:
|
|
type: boolean
|
|
dedicated_worker:
|
|
type: boolean
|
|
ws_error_handler_muted:
|
|
type: boolean
|
|
priority:
|
|
type: integer
|
|
restart_unless_cancelled:
|
|
type: boolean
|
|
timeout:
|
|
type: integer
|
|
delete_after_secs:
|
|
type: integer
|
|
description: If set, delete the job's args, result and logs after this many seconds following job completion
|
|
deployment_message:
|
|
type: string
|
|
concurrency_key:
|
|
type: string
|
|
debounce_key:
|
|
type: string
|
|
debounce_delay_s:
|
|
type: integer
|
|
debounce_args_to_accumulate:
|
|
type: array
|
|
items:
|
|
type: string
|
|
max_total_debouncing_time:
|
|
type: integer
|
|
max_total_debounces_amount:
|
|
type: integer
|
|
visible_to_runner_only:
|
|
type: boolean
|
|
auto_kind:
|
|
type: string
|
|
codebase:
|
|
type: string
|
|
has_preprocessor:
|
|
type: boolean
|
|
on_behalf_of_email:
|
|
type: string
|
|
preserve_on_behalf_of:
|
|
type: boolean
|
|
description: "When true and the caller is a member of the 'wm_deployers' group, preserves the original on_behalf_of_email value instead of overwriting it."
|
|
assets:
|
|
type: array
|
|
items:
|
|
type: object
|
|
required:
|
|
- path
|
|
- kind
|
|
properties:
|
|
path:
|
|
type: string
|
|
kind:
|
|
$ref: "#/components/schemas/AssetKind"
|
|
access_type:
|
|
type: string
|
|
enum: [r, w, rw]
|
|
alt_access_type:
|
|
type: string
|
|
enum: [r, w, rw]
|
|
modules:
|
|
type: object
|
|
nullable: true
|
|
description: "Additional script modules keyed by relative file path"
|
|
additionalProperties:
|
|
$ref: "#/components/schemas/ScriptModule"
|
|
labels:
|
|
type: array
|
|
items:
|
|
type: string
|
|
|
|
required:
|
|
- path
|
|
- summary
|
|
- content
|
|
- language
|
|
|
|
NewScriptWithDraft:
|
|
allOf:
|
|
- $ref: "#/components/schemas/NewScript"
|
|
- type: object
|
|
properties:
|
|
draft:
|
|
$ref: "#/components/schemas/NewScript"
|
|
hash:
|
|
type: string
|
|
required:
|
|
- hash
|
|
|
|
ScriptHistory:
|
|
type: object
|
|
properties:
|
|
script_hash:
|
|
type: string
|
|
deployment_msg:
|
|
type: string
|
|
required:
|
|
- script_hash
|
|
|
|
ScriptArgs:
|
|
type: object
|
|
description: The arguments to pass to the script or flow
|
|
additionalProperties: true
|
|
|
|
Input:
|
|
type: object
|
|
properties:
|
|
id:
|
|
type: string
|
|
name:
|
|
type: string
|
|
created_by:
|
|
type: string
|
|
created_at:
|
|
type: string
|
|
format: date-time
|
|
is_public:
|
|
type: boolean
|
|
success:
|
|
type: boolean
|
|
required:
|
|
- id
|
|
- name
|
|
- args
|
|
- created_by
|
|
- created_at
|
|
- is_public
|
|
|
|
CreateInput:
|
|
type: object
|
|
properties:
|
|
name:
|
|
type: string
|
|
args:
|
|
type: object
|
|
required:
|
|
- name
|
|
- args
|
|
- created_by
|
|
|
|
UpdateInput:
|
|
type: object
|
|
properties:
|
|
id:
|
|
type: string
|
|
name:
|
|
type: string
|
|
is_public:
|
|
type: boolean
|
|
required:
|
|
- id
|
|
- name
|
|
- is_public
|
|
|
|
RunnableType:
|
|
type: string
|
|
enum: ["ScriptHash", "ScriptPath", "FlowPath"]
|
|
|
|
QueuedJob:
|
|
type: object
|
|
properties:
|
|
workspace_id:
|
|
type: string
|
|
id:
|
|
type: string
|
|
format: uuid
|
|
parent_job:
|
|
type: string
|
|
format: uuid
|
|
created_by:
|
|
type: string
|
|
created_at:
|
|
type: string
|
|
format: date-time
|
|
started_at:
|
|
type: string
|
|
format: date-time
|
|
scheduled_for:
|
|
type: string
|
|
format: date-time
|
|
running:
|
|
type: boolean
|
|
script_path:
|
|
type: string
|
|
script_hash:
|
|
type: string
|
|
args:
|
|
$ref: "#/components/schemas/ScriptArgs"
|
|
logs:
|
|
type: string
|
|
raw_code:
|
|
type: string
|
|
canceled:
|
|
type: boolean
|
|
canceled_by:
|
|
type: string
|
|
canceled_reason:
|
|
type: string
|
|
last_ping:
|
|
type: string
|
|
format: date-time
|
|
job_kind:
|
|
type: string
|
|
enum:
|
|
[
|
|
"script",
|
|
"preview",
|
|
"dependencies",
|
|
"flowdependencies",
|
|
"appdependencies",
|
|
"flow",
|
|
"flowpreview",
|
|
"script_hub",
|
|
"identity",
|
|
"deploymentcallback",
|
|
"singlestepflow",
|
|
"flowscript",
|
|
"flownode",
|
|
"appscript",
|
|
"aiagent",
|
|
"unassigned_script",
|
|
"unassigned_flow",
|
|
"unassigned_singlestepflow",
|
|
]
|
|
schedule_path:
|
|
type: string
|
|
permissioned_as:
|
|
type: string
|
|
description: |
|
|
The user (u/userfoo) or group (g/groupfoo) whom
|
|
the execution of this script will be permissioned_as and by extension its DT_TOKEN.
|
|
flow_status:
|
|
$ref: "../../openflow.openapi.yaml#/components/schemas/FlowStatus"
|
|
workflow_as_code_status:
|
|
$ref: "#/components/schemas/WorkflowStatus"
|
|
raw_flow:
|
|
$ref: "../../openflow.openapi.yaml#/components/schemas/FlowValue"
|
|
is_flow_step:
|
|
type: boolean
|
|
language:
|
|
$ref: "#/components/schemas/ScriptLang"
|
|
email:
|
|
type: string
|
|
visible_to_owner:
|
|
type: boolean
|
|
mem_peak:
|
|
type: integer
|
|
tag:
|
|
type: string
|
|
priority:
|
|
type: integer
|
|
self_wait_time_ms:
|
|
type: number
|
|
aggregate_wait_time_ms:
|
|
type: number
|
|
suspend:
|
|
type: number
|
|
preprocessed:
|
|
type: boolean
|
|
worker:
|
|
type: string
|
|
required:
|
|
- id
|
|
- running
|
|
- canceled
|
|
- job_kind
|
|
- permissioned_as
|
|
- is_flow_step
|
|
- email
|
|
- visible_to_owner
|
|
- tag
|
|
|
|
CompletedJob:
|
|
type: object
|
|
properties:
|
|
workspace_id:
|
|
type: string
|
|
id:
|
|
type: string
|
|
format: uuid
|
|
parent_job:
|
|
type: string
|
|
format: uuid
|
|
created_by:
|
|
type: string
|
|
created_at:
|
|
type: string
|
|
format: date-time
|
|
started_at:
|
|
type: string
|
|
format: date-time
|
|
completed_at:
|
|
type: string
|
|
format: date-time
|
|
duration_ms:
|
|
type: integer
|
|
success:
|
|
type: boolean
|
|
script_path:
|
|
type: string
|
|
script_hash:
|
|
type: string
|
|
args:
|
|
$ref: "#/components/schemas/ScriptArgs"
|
|
result: {}
|
|
logs:
|
|
type: string
|
|
deleted:
|
|
type: boolean
|
|
raw_code:
|
|
type: string
|
|
canceled:
|
|
type: boolean
|
|
canceled_by:
|
|
type: string
|
|
canceled_reason:
|
|
type: string
|
|
job_kind:
|
|
type: string
|
|
enum:
|
|
[
|
|
"script",
|
|
"preview",
|
|
"dependencies",
|
|
"flow",
|
|
"flowdependencies",
|
|
"appdependencies",
|
|
"flowpreview",
|
|
"script_hub",
|
|
"identity",
|
|
"deploymentcallback",
|
|
"singlestepflow",
|
|
"flowscript",
|
|
"flownode",
|
|
"appscript",
|
|
"aiagent",
|
|
"unassigned_script",
|
|
"unassigned_flow",
|
|
"unassigned_singlestepflow",
|
|
]
|
|
schedule_path:
|
|
type: string
|
|
permissioned_as:
|
|
type: string
|
|
description: |
|
|
The user (u/userfoo) or group (g/groupfoo) whom
|
|
the execution of this script will be permissioned_as and by extension its DT_TOKEN.
|
|
flow_status:
|
|
$ref: "../../openflow.openapi.yaml#/components/schemas/FlowStatus"
|
|
workflow_as_code_status:
|
|
$ref: "#/components/schemas/WorkflowStatus"
|
|
raw_flow:
|
|
$ref: "../../openflow.openapi.yaml#/components/schemas/FlowValue"
|
|
is_flow_step:
|
|
type: boolean
|
|
language:
|
|
$ref: "#/components/schemas/ScriptLang"
|
|
is_skipped:
|
|
type: boolean
|
|
email:
|
|
type: string
|
|
visible_to_owner:
|
|
type: boolean
|
|
mem_peak:
|
|
type: integer
|
|
tag:
|
|
type: string
|
|
priority:
|
|
type: integer
|
|
labels:
|
|
type: array
|
|
items:
|
|
type: string
|
|
self_wait_time_ms:
|
|
type: number
|
|
aggregate_wait_time_ms:
|
|
type: number
|
|
preprocessed:
|
|
type: boolean
|
|
worker:
|
|
type: string
|
|
required:
|
|
- id
|
|
- created_by
|
|
- duration_ms
|
|
- created_at
|
|
- started_at
|
|
- success
|
|
- canceled
|
|
- job_kind
|
|
- permissioned_as
|
|
- is_flow_step
|
|
- is_skipped
|
|
- email
|
|
- visible_to_owner
|
|
- tag
|
|
|
|
ExportableCompletedJob:
|
|
type: object
|
|
description: Completed job with full data for export/import operations
|
|
properties:
|
|
id:
|
|
type: string
|
|
format: uuid
|
|
parent_job:
|
|
type: string
|
|
format: uuid
|
|
created_by:
|
|
type: string
|
|
created_at:
|
|
type: string
|
|
format: date-time
|
|
started_at:
|
|
type: string
|
|
format: date-time
|
|
completed_at:
|
|
type: string
|
|
format: date-time
|
|
duration_ms:
|
|
type: integer
|
|
script_path:
|
|
type: string
|
|
script_hash:
|
|
type: string
|
|
args:
|
|
type: object
|
|
description: Full job arguments without size restrictions
|
|
result:
|
|
type: object
|
|
description: Full job result without size restrictions
|
|
logs:
|
|
type: string
|
|
description: Complete job logs from v2_job table
|
|
raw_code:
|
|
type: string
|
|
raw_lock:
|
|
type: string
|
|
canceled_by:
|
|
type: string
|
|
canceled_reason:
|
|
type: string
|
|
job_kind:
|
|
type: string
|
|
enum:
|
|
[
|
|
"script",
|
|
"preview",
|
|
"dependencies",
|
|
"flow",
|
|
"flowdependencies",
|
|
"appdependencies",
|
|
"flowpreview",
|
|
"script_hub",
|
|
"identity",
|
|
"deploymentcallback",
|
|
"singlestepflow",
|
|
"flowscript",
|
|
"flownode",
|
|
"appscript",
|
|
"aiagent",
|
|
"unassigned_script",
|
|
"unassigned_flow",
|
|
"unassigned_singlestepflow",
|
|
]
|
|
trigger:
|
|
type: string
|
|
description: Trigger path for the job (replaces schedule_path)
|
|
trigger_kind:
|
|
type: string
|
|
enum:
|
|
[
|
|
"webhook",
|
|
"http",
|
|
"websocket",
|
|
"kafka",
|
|
"email",
|
|
"nats",
|
|
"schedule",
|
|
"app",
|
|
"ui",
|
|
"postgres",
|
|
"sqs",
|
|
"gcp",
|
|
]
|
|
permissioned_as:
|
|
type: string
|
|
permissioned_as_email:
|
|
type: string
|
|
flow_status:
|
|
type: object
|
|
description: Flow status from v2_job_status table
|
|
workflow_as_code_status:
|
|
type: object
|
|
raw_flow:
|
|
type: object
|
|
is_flow_step:
|
|
type: boolean
|
|
language:
|
|
$ref: "#/components/schemas/ScriptLang"
|
|
is_skipped:
|
|
type: boolean
|
|
email:
|
|
type: string
|
|
visible_to_owner:
|
|
type: boolean
|
|
mem_peak:
|
|
type: integer
|
|
tag:
|
|
type: string
|
|
priority:
|
|
type: integer
|
|
labels:
|
|
type: array
|
|
items:
|
|
type: string
|
|
same_worker:
|
|
type: boolean
|
|
flow_step_id:
|
|
type: string
|
|
flow_innermost_root_job:
|
|
type: string
|
|
format: uuid
|
|
concurrent_limit:
|
|
type: integer
|
|
concurrency_time_window_s:
|
|
type: integer
|
|
timeout:
|
|
type: integer
|
|
cache_ttl:
|
|
type: integer
|
|
self_wait_time_ms:
|
|
type: integer
|
|
aggregate_wait_time_ms:
|
|
type: integer
|
|
preprocessed:
|
|
type: boolean
|
|
worker:
|
|
type: string
|
|
status:
|
|
type: string
|
|
description: Actual job status from database
|
|
required:
|
|
- id
|
|
- created_by
|
|
- created_at
|
|
- job_kind
|
|
- permissioned_as
|
|
- email
|
|
- visible_to_owner
|
|
|
|
ExportableQueuedJob:
|
|
type: object
|
|
description: Queued job with full data for export/import operations
|
|
properties:
|
|
id:
|
|
type: string
|
|
format: uuid
|
|
parent_job:
|
|
type: string
|
|
format: uuid
|
|
created_by:
|
|
type: string
|
|
created_at:
|
|
type: string
|
|
format: date-time
|
|
started_at:
|
|
type: string
|
|
format: date-time
|
|
scheduled_for:
|
|
type: string
|
|
format: date-time
|
|
script_path:
|
|
type: string
|
|
script_hash:
|
|
type: string
|
|
args:
|
|
type: object
|
|
description: Full job arguments without size restrictions
|
|
logs:
|
|
type: string
|
|
description: Complete job logs from v2_job table
|
|
raw_code:
|
|
type: string
|
|
raw_lock:
|
|
type: string
|
|
canceled_by:
|
|
type: string
|
|
canceled_reason:
|
|
type: string
|
|
job_kind:
|
|
type: string
|
|
enum:
|
|
[
|
|
"script",
|
|
"preview",
|
|
"dependencies",
|
|
"flowdependencies",
|
|
"appdependencies",
|
|
"flow",
|
|
"flowpreview",
|
|
"script_hub",
|
|
"identity",
|
|
"deploymentcallback",
|
|
"singlestepflow",
|
|
"flowscript",
|
|
"flownode",
|
|
"appscript",
|
|
"aiagent",
|
|
"unassigned_script",
|
|
"unassigned_flow",
|
|
"unassigned_singlestepflow",
|
|
]
|
|
trigger:
|
|
type: string
|
|
description: Trigger path for the job (replaces schedule_path)
|
|
trigger_kind:
|
|
type: string
|
|
enum:
|
|
[
|
|
"webhook",
|
|
"http",
|
|
"websocket",
|
|
"kafka",
|
|
"email",
|
|
"nats",
|
|
"schedule",
|
|
"app",
|
|
"ui",
|
|
"postgres",
|
|
"sqs",
|
|
"gcp",
|
|
]
|
|
permissioned_as:
|
|
type: string
|
|
permissioned_as_email:
|
|
type: string
|
|
flow_status:
|
|
type: object
|
|
description: Flow status from v2_job_status table
|
|
workflow_as_code_status:
|
|
type: object
|
|
raw_flow:
|
|
type: object
|
|
is_flow_step:
|
|
type: boolean
|
|
language:
|
|
$ref: "#/components/schemas/ScriptLang"
|
|
email:
|
|
type: string
|
|
visible_to_owner:
|
|
type: boolean
|
|
mem_peak:
|
|
type: integer
|
|
tag:
|
|
type: string
|
|
priority:
|
|
type: integer
|
|
labels:
|
|
type: array
|
|
items:
|
|
type: string
|
|
same_worker:
|
|
type: boolean
|
|
flow_step_id:
|
|
type: string
|
|
flow_innermost_root_job:
|
|
type: string
|
|
format: uuid
|
|
concurrent_limit:
|
|
type: integer
|
|
concurrency_time_window_s:
|
|
type: integer
|
|
timeout:
|
|
type: integer
|
|
cache_ttl:
|
|
type: integer
|
|
self_wait_time_ms:
|
|
type: integer
|
|
aggregate_wait_time_ms:
|
|
type: integer
|
|
preprocessed:
|
|
type: boolean
|
|
suspend:
|
|
type: integer
|
|
suspend_until:
|
|
type: string
|
|
format: date-time
|
|
required:
|
|
- id
|
|
- created_by
|
|
- created_at
|
|
- job_kind
|
|
- permissioned_as
|
|
- email
|
|
- visible_to_owner
|
|
|
|
ObscuredJob:
|
|
type: object
|
|
properties:
|
|
typ:
|
|
type: string
|
|
started_at:
|
|
type: string
|
|
format: date-time
|
|
duration_ms:
|
|
type: number
|
|
Job:
|
|
oneOf:
|
|
- allOf:
|
|
- $ref: "#/components/schemas/CompletedJob"
|
|
- type: object
|
|
properties:
|
|
type:
|
|
type: string
|
|
enum: [CompletedJob]
|
|
- allOf:
|
|
- $ref: "#/components/schemas/QueuedJob"
|
|
- type: object
|
|
properties:
|
|
type:
|
|
type: string
|
|
enum: [QueuedJob]
|
|
discriminator:
|
|
propertyName: type
|
|
|
|
User:
|
|
type: object
|
|
properties:
|
|
email:
|
|
type: string
|
|
username:
|
|
type: string
|
|
is_admin:
|
|
type: boolean
|
|
name:
|
|
type: string
|
|
is_super_admin:
|
|
type: boolean
|
|
created_at:
|
|
type: string
|
|
format: date-time
|
|
operator:
|
|
type: boolean
|
|
disabled:
|
|
type: boolean
|
|
groups:
|
|
type: array
|
|
items:
|
|
type: string
|
|
folders:
|
|
type: array
|
|
items:
|
|
type: string
|
|
folders_owners:
|
|
type: array
|
|
items:
|
|
type: string
|
|
added_via:
|
|
nullable: true
|
|
allOf:
|
|
- $ref: "#/components/schemas/UserSource"
|
|
is_service_account:
|
|
type: boolean
|
|
required:
|
|
- email
|
|
- username
|
|
- is_admin
|
|
- is_super_admin
|
|
- created_at
|
|
- operator
|
|
- disabled
|
|
- folders
|
|
- folders_owners
|
|
|
|
UserSource:
|
|
type: object
|
|
properties:
|
|
source:
|
|
type: string
|
|
enum: [domain, instance_group, manual]
|
|
description: "How the user was added to the workspace"
|
|
domain:
|
|
type: string
|
|
description: "The domain used for auto-invite (when source is 'domain')"
|
|
group:
|
|
type: string
|
|
description: "The instance group name (when source is 'instance_group')"
|
|
required:
|
|
- source
|
|
|
|
UserUsage:
|
|
type: object
|
|
properties:
|
|
email:
|
|
type: string
|
|
executions:
|
|
type: number
|
|
|
|
Login:
|
|
type: object
|
|
properties:
|
|
email:
|
|
type: string
|
|
password:
|
|
type: string
|
|
required:
|
|
- email
|
|
- password
|
|
|
|
PasswordResetResponse:
|
|
type: object
|
|
properties:
|
|
message:
|
|
type: string
|
|
required:
|
|
- message
|
|
|
|
EditWorkspaceUser:
|
|
type: object
|
|
properties:
|
|
is_admin:
|
|
type: boolean
|
|
operator:
|
|
type: boolean
|
|
disabled:
|
|
type: boolean
|
|
|
|
TruncatedToken:
|
|
type: object
|
|
properties:
|
|
label:
|
|
type: string
|
|
expiration:
|
|
type: string
|
|
format: date-time
|
|
token_prefix:
|
|
type: string
|
|
created_at:
|
|
type: string
|
|
format: date-time
|
|
last_used_at:
|
|
type: string
|
|
format: date-time
|
|
scopes:
|
|
type: array
|
|
items:
|
|
type: string
|
|
email:
|
|
type: string
|
|
required:
|
|
- token_prefix
|
|
- created_at
|
|
- last_used_at
|
|
|
|
NewToken:
|
|
type: object
|
|
properties:
|
|
label:
|
|
type: string
|
|
expiration:
|
|
type: string
|
|
format: date-time
|
|
scopes:
|
|
type: array
|
|
items:
|
|
type: string
|
|
workspace_id:
|
|
type: string
|
|
|
|
NewTokenImpersonate:
|
|
type: object
|
|
properties:
|
|
label:
|
|
type: string
|
|
expiration:
|
|
type: string
|
|
format: date-time
|
|
impersonate_email:
|
|
type: string
|
|
workspace_id:
|
|
type: string
|
|
required:
|
|
- impersonate_email
|
|
|
|
ListableVariable:
|
|
type: object
|
|
properties:
|
|
workspace_id:
|
|
type: string
|
|
path:
|
|
type: string
|
|
value:
|
|
type: string
|
|
is_secret:
|
|
type: boolean
|
|
description:
|
|
type: string
|
|
account:
|
|
type: integer
|
|
is_oauth:
|
|
type: boolean
|
|
extra_perms:
|
|
type: object
|
|
additionalProperties:
|
|
type: boolean
|
|
is_expired:
|
|
type: boolean
|
|
refresh_error:
|
|
type: string
|
|
is_linked:
|
|
type: boolean
|
|
is_refreshed:
|
|
type: boolean
|
|
expires_at:
|
|
type: string
|
|
format: date-time
|
|
labels:
|
|
type: array
|
|
items:
|
|
type: string
|
|
required:
|
|
- workspace_id
|
|
- path
|
|
- is_secret
|
|
- extra_perms
|
|
|
|
ContextualVariable:
|
|
type: object
|
|
properties:
|
|
name:
|
|
type: string
|
|
value:
|
|
type: string
|
|
description:
|
|
type: string
|
|
is_custom:
|
|
type: boolean
|
|
required:
|
|
- name
|
|
- value
|
|
- description
|
|
- is_custom
|
|
|
|
CreateVariable:
|
|
type: object
|
|
properties:
|
|
path:
|
|
type: string
|
|
description: The path to the variable
|
|
value:
|
|
type: string
|
|
description: The value of the variable
|
|
is_secret:
|
|
type: boolean
|
|
description: Whether the variable is a secret
|
|
description:
|
|
type: string
|
|
description: The description of the variable
|
|
account:
|
|
type: integer
|
|
description: The account identifier
|
|
is_oauth:
|
|
type: boolean
|
|
description: Whether the variable is an OAuth variable
|
|
expires_at:
|
|
type: string
|
|
description: The expiration date of the variable
|
|
format: date-time
|
|
labels:
|
|
type: array
|
|
items:
|
|
type: string
|
|
required:
|
|
- path
|
|
- value
|
|
- is_secret
|
|
- description
|
|
|
|
EditVariable:
|
|
type: object
|
|
properties:
|
|
path:
|
|
type: string
|
|
description: The path to the variable
|
|
value:
|
|
type: string
|
|
description: The new value of the variable
|
|
is_secret:
|
|
type: boolean
|
|
description: Whether the variable is a secret
|
|
description:
|
|
type: string
|
|
description: The new description of the variable
|
|
labels:
|
|
type: array
|
|
items:
|
|
type: string
|
|
|
|
AuditLog:
|
|
type: object
|
|
properties:
|
|
workspace_id:
|
|
type: string
|
|
id:
|
|
type: integer
|
|
timestamp:
|
|
type: string
|
|
format: date-time
|
|
username:
|
|
type: string
|
|
operation:
|
|
type: string
|
|
enum:
|
|
- "jobs.run"
|
|
- "jobs.run.script"
|
|
- "jobs.run.preview"
|
|
- "jobs.run.flow"
|
|
- "jobs.run.flow_preview"
|
|
- "jobs.run.script_hub"
|
|
- "jobs.run.dependencies"
|
|
- "jobs.run.identity"
|
|
- "jobs.run.noop"
|
|
- "jobs.flow_dependencies"
|
|
- "jobs"
|
|
- "jobs.cancel"
|
|
- "jobs.force_cancel"
|
|
- "jobs.disapproval"
|
|
- "jobs.delete"
|
|
- "account.delete"
|
|
- "ai.request"
|
|
- "resources.create"
|
|
- "resources.update"
|
|
- "resources.delete"
|
|
- "resource_types.create"
|
|
- "resource_types.update"
|
|
- "resource_types.delete"
|
|
- "schedule.create"
|
|
- "schedule.setenabled"
|
|
- "schedule.edit"
|
|
- "schedule.delete"
|
|
- "scripts.create"
|
|
- "scripts.update"
|
|
- "scripts.archive"
|
|
- "scripts.delete"
|
|
- "users.create"
|
|
- "users.delete"
|
|
- "users.update"
|
|
- "users.login"
|
|
- "users.login_failure"
|
|
- "users.logout"
|
|
- "users.accept_invite"
|
|
- "users.decline_invite"
|
|
- "users.token.create"
|
|
- "users.token.delete"
|
|
- "users.add_to_workspace"
|
|
- "users.add_global"
|
|
- "users.setpassword"
|
|
- "users.impersonate"
|
|
- "users.leave_workspace"
|
|
- "oauth.login"
|
|
- "oauth.login_failure"
|
|
- "oauth.signup"
|
|
- "variables.create"
|
|
- "variables.delete"
|
|
- "variables.update"
|
|
- "flows.create"
|
|
- "flows.update"
|
|
- "flows.delete"
|
|
- "flows.archive"
|
|
- "apps.create"
|
|
- "apps.update"
|
|
- "apps.delete"
|
|
- "folder.create"
|
|
- "folder.update"
|
|
- "folder.delete"
|
|
- "folder.add_owner"
|
|
- "folder.remove_owner"
|
|
- "group.create"
|
|
- "group.delete"
|
|
- "group.edit"
|
|
- "group.adduser"
|
|
- "group.removeuser"
|
|
- "igroup.create"
|
|
- "igroup.delete"
|
|
- "igroup.adduser"
|
|
- "igroup.removeuser"
|
|
- "variables.decrypt_secret"
|
|
- "workspaces.edit_command_script"
|
|
- "workspaces.edit_deploy_to"
|
|
- "workspaces.edit_auto_invite_domain"
|
|
- "workspaces.edit_webhook"
|
|
- "workspaces.edit_copilot_config"
|
|
- "workspaces.edit_error_handler"
|
|
- "workspaces.create"
|
|
- "workspaces.update"
|
|
- "workspaces.archive"
|
|
- "workspaces.unarchive"
|
|
- "workspaces.delete"
|
|
action_kind:
|
|
type: string
|
|
enum: ["Created", "Updated", "Delete", "Execute"]
|
|
resource:
|
|
type: string
|
|
parameters:
|
|
type: object
|
|
span:
|
|
type: string
|
|
required:
|
|
- workspace_id
|
|
- id
|
|
- timestamp
|
|
- username
|
|
- operation
|
|
- action_kind
|
|
|
|
MainArgSignature:
|
|
type: object
|
|
properties:
|
|
type:
|
|
type: string
|
|
enum: ["Valid", "Invalid"]
|
|
error:
|
|
type: string
|
|
star_args:
|
|
type: boolean
|
|
star_kwargs:
|
|
type: boolean
|
|
args:
|
|
type: array
|
|
items:
|
|
type: object
|
|
properties:
|
|
name:
|
|
type: string
|
|
typ:
|
|
oneOf:
|
|
- type: string
|
|
enum:
|
|
[
|
|
"float",
|
|
"int",
|
|
"bool",
|
|
"email",
|
|
"unknown",
|
|
"bytes",
|
|
"dict",
|
|
"datetime",
|
|
"sql",
|
|
]
|
|
- type: object
|
|
properties:
|
|
resource:
|
|
type: string
|
|
nullable: true
|
|
required:
|
|
- resource
|
|
- type: object
|
|
properties:
|
|
str:
|
|
type: array
|
|
items:
|
|
type: string
|
|
nullable: true
|
|
required:
|
|
- str
|
|
- type: object
|
|
properties:
|
|
object:
|
|
type: object
|
|
properties:
|
|
name:
|
|
type: string
|
|
props:
|
|
type: array
|
|
items:
|
|
type: object
|
|
properties:
|
|
key:
|
|
type: string
|
|
typ:
|
|
oneOf:
|
|
- type: string
|
|
enum:
|
|
[
|
|
"float",
|
|
"int",
|
|
"bool",
|
|
"email",
|
|
"unknown",
|
|
"bytes",
|
|
"dict",
|
|
"datetime",
|
|
"sql",
|
|
]
|
|
- type: object
|
|
properties:
|
|
str: {}
|
|
required: [str]
|
|
required:
|
|
- key
|
|
- typ
|
|
required:
|
|
- object
|
|
- type: object
|
|
properties:
|
|
list:
|
|
oneOf:
|
|
- type: string
|
|
enum:
|
|
[
|
|
"float",
|
|
"int",
|
|
"bool",
|
|
"email",
|
|
"unknown",
|
|
"bytes",
|
|
"dict",
|
|
"datetime",
|
|
"sql",
|
|
]
|
|
- type: object
|
|
properties:
|
|
str: {}
|
|
required: [str]
|
|
nullable: true
|
|
required:
|
|
- list
|
|
has_default:
|
|
type: boolean
|
|
default: {}
|
|
required:
|
|
- name
|
|
- typ
|
|
auto_kind:
|
|
type: string
|
|
nullable: true
|
|
has_preprocessor:
|
|
type: boolean
|
|
nullable: true
|
|
required:
|
|
- star_args
|
|
- start_kwargs
|
|
- args
|
|
- type
|
|
- error
|
|
- auto_kind
|
|
- has_preprocessor
|
|
|
|
ScriptLang:
|
|
type: string
|
|
enum: [
|
|
python3,
|
|
deno,
|
|
go,
|
|
bash,
|
|
powershell,
|
|
postgresql,
|
|
mysql,
|
|
bigquery,
|
|
snowflake,
|
|
mssql,
|
|
oracledb,
|
|
graphql,
|
|
nativets,
|
|
bun,
|
|
php,
|
|
rust,
|
|
ansible,
|
|
csharp,
|
|
nu,
|
|
java,
|
|
ruby,
|
|
rlang,
|
|
duckdb,
|
|
bunnative,
|
|
# for related places search: ADD_NEW_LANG
|
|
]
|
|
|
|
ScriptModule:
|
|
type: object
|
|
description: "An additional module file associated with a script"
|
|
properties:
|
|
content:
|
|
type: string
|
|
description: "The source code content of this module"
|
|
language:
|
|
$ref: "#/components/schemas/ScriptLang"
|
|
lock:
|
|
type: string
|
|
nullable: true
|
|
description: "Lock file content for this module's dependencies"
|
|
required:
|
|
- content
|
|
- language
|
|
|
|
Preview:
|
|
type: object
|
|
properties:
|
|
content:
|
|
type: string
|
|
description: The code to run
|
|
path:
|
|
type: string
|
|
description: The path to the script
|
|
script_hash:
|
|
type: string
|
|
description: The hash of the script
|
|
args:
|
|
$ref: "#/components/schemas/ScriptArgs"
|
|
language:
|
|
$ref: "#/components/schemas/ScriptLang"
|
|
tag:
|
|
type: string
|
|
kind:
|
|
type: string
|
|
enum: [code, identity, http]
|
|
dedicated_worker:
|
|
type: boolean
|
|
lock:
|
|
type: string
|
|
flow_path:
|
|
type: string
|
|
modules:
|
|
type: object
|
|
nullable: true
|
|
description: "Additional script modules keyed by relative file path"
|
|
additionalProperties:
|
|
$ref: "#/components/schemas/ScriptModule"
|
|
required:
|
|
- args
|
|
|
|
PreviewInline:
|
|
type: object
|
|
properties:
|
|
content:
|
|
type: string
|
|
description: The code to run
|
|
args:
|
|
$ref: "#/components/schemas/ScriptArgs"
|
|
language:
|
|
$ref: "#/components/schemas/ScriptLang"
|
|
required: [content, args, language]
|
|
|
|
InlineScriptArgs:
|
|
type: object
|
|
properties:
|
|
args:
|
|
$ref: "#/components/schemas/ScriptArgs"
|
|
|
|
WorkflowTask:
|
|
type: object
|
|
properties:
|
|
args:
|
|
$ref: "#/components/schemas/ScriptArgs"
|
|
required:
|
|
- args
|
|
|
|
WorkflowStatusRecord:
|
|
type: object
|
|
additionalProperties:
|
|
$ref: "#/components/schemas/WorkflowStatus"
|
|
|
|
WorkflowStatus:
|
|
type: object
|
|
properties:
|
|
scheduled_for:
|
|
type: string
|
|
format: date-time
|
|
started_at:
|
|
type: string
|
|
format: date-time
|
|
duration_ms:
|
|
type: number
|
|
name:
|
|
type: string
|
|
|
|
CreateResource:
|
|
type: object
|
|
properties:
|
|
path:
|
|
type: string
|
|
description: The path to the resource
|
|
value: {}
|
|
description:
|
|
type: string
|
|
description: The description of the resource
|
|
resource_type:
|
|
type: string
|
|
description: The resource_type associated with the resource
|
|
labels:
|
|
type: array
|
|
items:
|
|
type: string
|
|
required:
|
|
- path
|
|
- value
|
|
- resource_type
|
|
|
|
EditResource:
|
|
type: object
|
|
properties:
|
|
path:
|
|
type: string
|
|
description: The path to the resource
|
|
description:
|
|
type: string
|
|
description: The new description of the resource
|
|
value: {}
|
|
resource_type:
|
|
type: string
|
|
description: The new resource_type to be associated with the resource
|
|
labels:
|
|
type: array
|
|
items:
|
|
type: string
|
|
|
|
Resource:
|
|
type: object
|
|
properties:
|
|
workspace_id:
|
|
type: string
|
|
path:
|
|
type: string
|
|
description:
|
|
type: string
|
|
resource_type:
|
|
type: string
|
|
value: {}
|
|
is_oauth:
|
|
type: boolean
|
|
extra_perms:
|
|
type: object
|
|
additionalProperties:
|
|
type: boolean
|
|
created_by:
|
|
type: string
|
|
edited_at:
|
|
type: string
|
|
format: date-time
|
|
labels:
|
|
type: array
|
|
items:
|
|
type: string
|
|
required:
|
|
- path
|
|
- resource_type
|
|
- is_oauth
|
|
|
|
ListableResource:
|
|
type: object
|
|
properties:
|
|
workspace_id:
|
|
type: string
|
|
path:
|
|
type: string
|
|
description:
|
|
type: string
|
|
resource_type:
|
|
type: string
|
|
value: {}
|
|
is_oauth:
|
|
type: boolean
|
|
extra_perms:
|
|
type: object
|
|
additionalProperties:
|
|
type: boolean
|
|
is_expired:
|
|
type: boolean
|
|
refresh_error:
|
|
type: string
|
|
is_linked:
|
|
type: boolean
|
|
is_refreshed:
|
|
type: boolean
|
|
account:
|
|
type: number
|
|
created_by:
|
|
type: string
|
|
edited_at:
|
|
type: string
|
|
format: date-time
|
|
labels:
|
|
type: array
|
|
items:
|
|
type: string
|
|
required:
|
|
- path
|
|
- resource_type
|
|
- is_oauth
|
|
- is_linked
|
|
- is_refreshed
|
|
|
|
ResourceType:
|
|
type: object
|
|
properties:
|
|
workspace_id:
|
|
type: string
|
|
name:
|
|
type: string
|
|
schema: {}
|
|
description:
|
|
type: string
|
|
created_by:
|
|
type: string
|
|
edited_at:
|
|
type: string
|
|
format: date-time
|
|
format_extension:
|
|
type: string
|
|
is_fileset:
|
|
type: boolean
|
|
required:
|
|
- name
|
|
|
|
EditResourceType:
|
|
type: object
|
|
properties:
|
|
schema: {}
|
|
description:
|
|
type: string
|
|
is_fileset:
|
|
type: boolean
|
|
|
|
Schedule:
|
|
type: object
|
|
properties:
|
|
path:
|
|
type: string
|
|
description: The unique path identifier for this schedule
|
|
edited_by:
|
|
type: string
|
|
description: Username of the last person who edited this schedule
|
|
edited_at:
|
|
type: string
|
|
format: date-time
|
|
description: Timestamp of the last edit
|
|
schedule:
|
|
type: string
|
|
description: Cron expression with 6 fields (seconds, minutes, hours, day of month, month, day of week). Example '0 0 12 * * *' for daily at noon
|
|
timezone:
|
|
type: string
|
|
description: IANA timezone for the schedule (e.g., 'UTC', 'Europe/Paris', 'America/New_York')
|
|
enabled:
|
|
type: boolean
|
|
description: Whether the schedule is currently active and will trigger jobs
|
|
script_path:
|
|
type: string
|
|
description: Path to the script or flow to execute when triggered
|
|
is_flow:
|
|
type: boolean
|
|
description: True if script_path points to a flow, false if it points to a script
|
|
args:
|
|
$ref: "#/components/schemas/ScriptArgs"
|
|
nullable: true
|
|
extra_perms:
|
|
type: object
|
|
additionalProperties:
|
|
type: boolean
|
|
description: Additional permissions for this schedule
|
|
email:
|
|
type: string
|
|
description: Email of the user who owns this schedule, used for permissioned_as
|
|
permissioned_as:
|
|
type: string
|
|
description: The user or group this schedule runs as (e.g., 'u/admin' or 'g/mygroup')
|
|
error:
|
|
type: string
|
|
nullable: true
|
|
description: Last error message if the schedule failed to trigger
|
|
on_failure:
|
|
type: string
|
|
nullable: true
|
|
description: Path to a script or flow to run when the scheduled job fails
|
|
on_failure_times:
|
|
type: number
|
|
nullable: true
|
|
description: Number of consecutive failures before the on_failure handler is triggered (default 1)
|
|
on_failure_exact:
|
|
type: boolean
|
|
nullable: true
|
|
description: If true, trigger on_failure handler only on exactly N failures, not on every failure after N
|
|
on_failure_extra_args:
|
|
$ref: "#/components/schemas/ScriptArgs"
|
|
nullable: true
|
|
on_recovery:
|
|
type: string
|
|
nullable: true
|
|
description: Path to a script or flow to run when the schedule recovers after failures
|
|
on_recovery_times:
|
|
type: number
|
|
nullable: true
|
|
description: Number of consecutive successes before the on_recovery handler is triggered (default 1)
|
|
on_recovery_extra_args:
|
|
$ref: "#/components/schemas/ScriptArgs"
|
|
nullable: true
|
|
on_success:
|
|
type: string
|
|
nullable: true
|
|
description: Path to a script or flow to run after each successful execution
|
|
on_success_extra_args:
|
|
$ref: "#/components/schemas/ScriptArgs"
|
|
nullable: true
|
|
ws_error_handler_muted:
|
|
type: boolean
|
|
description: If true, the workspace-level error handler will not be triggered for this schedule's failures
|
|
retry:
|
|
$ref: "../../openflow.openapi.yaml#/components/schemas/Retry"
|
|
nullable: true
|
|
summary:
|
|
type: string
|
|
nullable: true
|
|
description: Short summary describing the purpose of this schedule
|
|
description:
|
|
type: string
|
|
nullable: true
|
|
description: Detailed description of what this schedule does
|
|
no_flow_overlap:
|
|
type: boolean
|
|
description: If true, skip this schedule's execution if the previous run is still in progress (prevents concurrent runs)
|
|
tag:
|
|
type: string
|
|
nullable: true
|
|
description: Worker tag to route jobs to specific worker groups
|
|
paused_until:
|
|
type: string
|
|
format: date-time
|
|
nullable: true
|
|
description: ISO 8601 datetime until which the schedule is paused. Schedule resumes automatically after this time
|
|
cron_version:
|
|
type: string
|
|
nullable: true
|
|
description: Cron parser version. Use 'v2' for extended syntax with additional features
|
|
dynamic_skip:
|
|
type: string
|
|
nullable: true
|
|
description: Path to a script that validates scheduled datetimes. Receives scheduled_for datetime and returns boolean to skip (true) or run (false)
|
|
labels:
|
|
type: array
|
|
items:
|
|
type: string
|
|
default: []
|
|
required:
|
|
- path
|
|
- edited_by
|
|
- edited_at
|
|
- schedule
|
|
- script_path
|
|
- timezone
|
|
- extra_perms
|
|
- is_flow
|
|
- enabled
|
|
- email
|
|
- permissioned_as
|
|
|
|
|
|
ScheduleWJobs:
|
|
allOf:
|
|
- $ref: "#/components/schemas/Schedule"
|
|
- type: object
|
|
properties:
|
|
jobs:
|
|
type: array
|
|
items:
|
|
type: object
|
|
properties:
|
|
id:
|
|
type: string
|
|
success:
|
|
type: boolean
|
|
duration_ms:
|
|
type: number
|
|
required:
|
|
- id
|
|
- success
|
|
- duration_ms
|
|
|
|
ErrorHandler:
|
|
type: string
|
|
enum:
|
|
- custom
|
|
- slack
|
|
- teams
|
|
- email
|
|
|
|
NewSchedule:
|
|
type: object
|
|
properties:
|
|
path:
|
|
type: string
|
|
description: The unique path identifier for this schedule
|
|
schedule:
|
|
type: string
|
|
description: Cron expression with 6 fields (seconds, minutes, hours, day of month, month, day of week). Example '0 0 12 * * *' for daily at noon
|
|
timezone:
|
|
type: string
|
|
description: IANA timezone for the schedule (e.g., 'UTC', 'Europe/Paris', 'America/New_York')
|
|
script_path:
|
|
type: string
|
|
description: Path to the script or flow to execute when triggered
|
|
is_flow:
|
|
type: boolean
|
|
description: True if script_path points to a flow, false if it points to a script
|
|
args:
|
|
nullable: true
|
|
$ref: "#/components/schemas/ScriptArgs"
|
|
enabled:
|
|
type: boolean
|
|
description: Whether the schedule is currently active and will trigger jobs
|
|
on_failure:
|
|
type: string
|
|
nullable: true
|
|
description: Path to a script or flow to run when the scheduled job fails
|
|
on_failure_times:
|
|
type: number
|
|
nullable: true
|
|
description: Number of consecutive failures before the on_failure handler is triggered (default 1)
|
|
on_failure_exact:
|
|
type: boolean
|
|
nullable: true
|
|
description: If true, trigger on_failure handler only on exactly N failures, not on every failure after N
|
|
on_failure_extra_args:
|
|
nullable: true
|
|
$ref: "#/components/schemas/ScriptArgs"
|
|
on_recovery:
|
|
type: string
|
|
nullable: true
|
|
description: Path to a script or flow to run when the schedule recovers after failures
|
|
on_recovery_times:
|
|
type: number
|
|
nullable: true
|
|
description: Number of consecutive successes before the on_recovery handler is triggered (default 1)
|
|
on_recovery_extra_args:
|
|
nullable: true
|
|
$ref: "#/components/schemas/ScriptArgs"
|
|
on_success:
|
|
type: string
|
|
nullable: true
|
|
description: Path to a script or flow to run after each successful execution
|
|
on_success_extra_args:
|
|
nullable: true
|
|
$ref: "#/components/schemas/ScriptArgs"
|
|
ws_error_handler_muted:
|
|
type: boolean
|
|
description: If true, the workspace-level error handler will not be triggered for this schedule's failures
|
|
retry:
|
|
nullable: true
|
|
$ref: "../../openflow.openapi.yaml#/components/schemas/Retry"
|
|
no_flow_overlap:
|
|
type: boolean
|
|
description: If true, skip this schedule's execution if the previous run is still in progress (prevents concurrent runs)
|
|
summary:
|
|
type: string
|
|
nullable: true
|
|
description: Short summary describing the purpose of this schedule
|
|
description:
|
|
type: string
|
|
nullable: true
|
|
description: Detailed description of what this schedule does
|
|
tag:
|
|
type: string
|
|
nullable: true
|
|
description: Worker tag to route jobs to specific worker groups
|
|
paused_until:
|
|
type: string
|
|
nullable: true
|
|
format: date-time
|
|
description: ISO 8601 datetime until which the schedule is paused. Schedule resumes automatically after this time
|
|
cron_version:
|
|
type: string
|
|
nullable: true
|
|
description: Cron parser version. Use 'v2' for extended syntax with additional features
|
|
dynamic_skip:
|
|
type: string
|
|
nullable: true
|
|
description: Path to a script that validates scheduled datetimes. Receives scheduled_for datetime and returns boolean to skip (true) or run (false)
|
|
permissioned_as:
|
|
type: string
|
|
description: The user or group this schedule runs as. Used during deployment to preserve the original schedule owner.
|
|
preserve_permissioned_as:
|
|
type: boolean
|
|
description: "When true and the caller is a member of the 'wm_deployers' group, preserves the original permissioned_as value instead of overwriting it."
|
|
labels:
|
|
type: array
|
|
items:
|
|
type: string
|
|
required:
|
|
- path
|
|
- schedule
|
|
- timezone
|
|
- script_path
|
|
- is_flow
|
|
- args
|
|
|
|
EditSchedule:
|
|
type: object
|
|
properties:
|
|
schedule:
|
|
type: string
|
|
description: Cron expression with 6 fields (seconds, minutes, hours, day of month, month, day of week). Example '0 0 12 * * *' for daily at noon
|
|
timezone:
|
|
type: string
|
|
description: IANA timezone for the schedule (e.g., 'UTC', 'Europe/Paris', 'America/New_York')
|
|
args:
|
|
nullable: true
|
|
$ref: "#/components/schemas/ScriptArgs"
|
|
on_failure:
|
|
type: string
|
|
nullable: true
|
|
description: Path to a script or flow to run when the scheduled job fails
|
|
on_failure_times:
|
|
type: number
|
|
nullable: true
|
|
description: Number of consecutive failures before the on_failure handler is triggered (default 1)
|
|
on_failure_exact:
|
|
type: boolean
|
|
nullable: true
|
|
description: If true, trigger on_failure handler only on exactly N failures, not on every failure after N
|
|
on_failure_extra_args:
|
|
nullable: true
|
|
$ref: "#/components/schemas/ScriptArgs"
|
|
on_recovery:
|
|
type: string
|
|
nullable: true
|
|
description: Path to a script or flow to run when the schedule recovers after failures
|
|
on_recovery_times:
|
|
type: number
|
|
nullable: true
|
|
description: Number of consecutive successes before the on_recovery handler is triggered (default 1)
|
|
on_recovery_extra_args:
|
|
nullable: true
|
|
$ref: "#/components/schemas/ScriptArgs"
|
|
on_success:
|
|
type: string
|
|
nullable: true
|
|
description: Path to a script or flow to run after each successful execution
|
|
on_success_extra_args:
|
|
nullable: true
|
|
$ref: "#/components/schemas/ScriptArgs"
|
|
ws_error_handler_muted:
|
|
type: boolean
|
|
description: If true, the workspace-level error handler will not be triggered for this schedule's failures
|
|
retry:
|
|
nullable: true
|
|
$ref: "../../openflow.openapi.yaml#/components/schemas/Retry"
|
|
no_flow_overlap:
|
|
type: boolean
|
|
description: If true, skip this schedule's execution if the previous run is still in progress (prevents concurrent runs)
|
|
summary:
|
|
type: string
|
|
nullable: true
|
|
description: Short summary describing the purpose of this schedule
|
|
description:
|
|
type: string
|
|
nullable: true
|
|
description: Detailed description of what this schedule does
|
|
tag:
|
|
type: string
|
|
nullable: true
|
|
description: Worker tag to route jobs to specific worker groups
|
|
paused_until:
|
|
type: string
|
|
nullable: true
|
|
format: date-time
|
|
description: ISO 8601 datetime until which the schedule is paused. Schedule resumes automatically after this time
|
|
cron_version:
|
|
type: string
|
|
nullable: true
|
|
description: Cron parser version. Use 'v2' for extended syntax with additional features
|
|
dynamic_skip:
|
|
type: string
|
|
nullable: true
|
|
description: Path to a script that validates scheduled datetimes. Receives scheduled_for datetime and returns boolean to skip (true) or run (false)
|
|
permissioned_as:
|
|
type: string
|
|
nullable: true
|
|
description: "The user or group this schedule runs as (e.g., 'u/admin' or 'g/mygroup'). Only admins and wm_deployers can set this via preserve_permissioned_as."
|
|
preserve_permissioned_as:
|
|
type: boolean
|
|
nullable: true
|
|
description: "If true and user is admin/wm_deployers, preserve the provided permissioned_as instead of using the deploying user's identity"
|
|
labels:
|
|
type: array
|
|
items:
|
|
type: string
|
|
required:
|
|
- schedule
|
|
- timezone
|
|
- args
|
|
|
|
JobTriggerKind:
|
|
description: job trigger kind (schedule, http, websocket...)
|
|
type: string
|
|
enum:
|
|
- webhook
|
|
- default_email
|
|
- email
|
|
- schedule
|
|
- http
|
|
- websocket
|
|
- postgres
|
|
- kafka
|
|
- nats
|
|
- mqtt
|
|
- sqs
|
|
- gcp
|
|
- google
|
|
|
|
TriggerMode:
|
|
description: job trigger mode
|
|
type: string
|
|
enum:
|
|
- enabled
|
|
- disabled
|
|
- suspended
|
|
|
|
TriggerExtraProperty:
|
|
type: object
|
|
properties:
|
|
path:
|
|
type: string
|
|
description: The unique path identifier for this trigger
|
|
script_path:
|
|
type: string
|
|
description: Path to the script or flow to execute when triggered
|
|
permissioned_as:
|
|
type: string
|
|
description: The user or group this trigger runs as (permissioned_as)
|
|
extra_perms:
|
|
type: object
|
|
description: Additional permissions for this trigger
|
|
additionalProperties:
|
|
type: boolean
|
|
workspace_id:
|
|
type: string
|
|
description: The workspace this trigger belongs to
|
|
edited_by:
|
|
type: string
|
|
description: Username of the last person who edited this trigger
|
|
edited_at:
|
|
type: string
|
|
format: date-time
|
|
description: Timestamp of the last edit
|
|
is_flow:
|
|
type: boolean
|
|
description: True if script_path points to a flow, false if it points to a script
|
|
mode:
|
|
$ref: "#/components/schemas/TriggerMode"
|
|
description: Trigger mode (enabled/disabled)
|
|
labels:
|
|
type: array
|
|
items:
|
|
type: string
|
|
default: []
|
|
required:
|
|
- path
|
|
- script_path
|
|
- permissioned_as
|
|
- extra_perms
|
|
- workspace_id
|
|
- edited_by
|
|
- edited_at
|
|
- is_flow
|
|
- mode
|
|
|
|
|
|
AuthenticationMethod:
|
|
type: string
|
|
enum:
|
|
- none
|
|
- windmill
|
|
- api_key
|
|
- basic_http
|
|
- custom_script
|
|
- signature
|
|
|
|
RunnableKind:
|
|
type: string
|
|
enum:
|
|
- script
|
|
- flow
|
|
|
|
OpenapiSpecFormat:
|
|
type: string
|
|
enum:
|
|
- yaml
|
|
- json
|
|
|
|
OpenapiHttpRouteFilters:
|
|
type: object
|
|
properties:
|
|
folder_regex:
|
|
type: string
|
|
path_regex:
|
|
type: string
|
|
route_path_regex:
|
|
type: string
|
|
required:
|
|
- folder_regex
|
|
- path_regex
|
|
- route_path_regex
|
|
|
|
WebhookFilters:
|
|
type: object
|
|
properties:
|
|
user_or_folder_regex:
|
|
type: string
|
|
enum:
|
|
- "*"
|
|
- u
|
|
- f
|
|
user_or_folder_regex_value:
|
|
type: string
|
|
path:
|
|
type: string
|
|
runnable_kind:
|
|
$ref: "#/components/schemas/RunnableKind"
|
|
required:
|
|
- user_or_folder_regex
|
|
- user_or_folder_regex_value
|
|
- path
|
|
- runnable_kind
|
|
|
|
OpenapiV3Info:
|
|
type: object
|
|
properties:
|
|
title:
|
|
type: string
|
|
version:
|
|
type: string
|
|
description:
|
|
type: string
|
|
terms_of_service:
|
|
type: string
|
|
contact:
|
|
type: object
|
|
properties:
|
|
name:
|
|
type: string
|
|
url:
|
|
type: string
|
|
email:
|
|
type: string
|
|
license:
|
|
type: object
|
|
properties:
|
|
name:
|
|
type: string
|
|
identifier:
|
|
type: string
|
|
url:
|
|
type: string
|
|
required:
|
|
- name
|
|
required:
|
|
- title
|
|
- version
|
|
|
|
GenerateOpenapiSpec:
|
|
type: object
|
|
properties:
|
|
info:
|
|
$ref: "#/components/schemas/OpenapiV3Info"
|
|
url:
|
|
type: string
|
|
openapi_spec_format:
|
|
$ref: "#/components/schemas/OpenapiSpecFormat"
|
|
http_route_filters:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/OpenapiHttpRouteFilters"
|
|
webhook_filters:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/WebhookFilters"
|
|
|
|
HttpMethod:
|
|
type: string
|
|
enum:
|
|
- get
|
|
- post
|
|
- put
|
|
- delete
|
|
- patch
|
|
|
|
HttpRequestType:
|
|
type: string
|
|
enum:
|
|
- sync
|
|
- async
|
|
- sync_sse
|
|
|
|
HttpTrigger:
|
|
allOf:
|
|
- $ref: "#/components/schemas/TriggerExtraProperty"
|
|
type: object
|
|
properties:
|
|
route_path:
|
|
type: string
|
|
description: The URL route path that will trigger this endpoint (e.g., 'api/myendpoint'). Must NOT start with a /.
|
|
static_asset_config:
|
|
type: object
|
|
nullable: true
|
|
description: Configuration for serving static assets (s3 bucket, storage path, filename)
|
|
properties:
|
|
s3:
|
|
type: string
|
|
description: S3 bucket path for static assets
|
|
storage:
|
|
type: string
|
|
description: Storage path for static assets
|
|
filename:
|
|
type: string
|
|
description: Filename for the static asset
|
|
required:
|
|
- s3
|
|
http_method:
|
|
$ref: "#/components/schemas/HttpMethod"
|
|
description: HTTP method (get, post, put, delete, patch) that triggers this endpoint
|
|
authentication_resource_path:
|
|
type: string
|
|
nullable: true
|
|
description: Path to the resource containing authentication configuration (for api_key, basic_http, custom_script, signature methods)
|
|
summary:
|
|
type: string
|
|
nullable: true
|
|
description: Short summary describing the purpose of this trigger
|
|
description:
|
|
type: string
|
|
nullable: true
|
|
description: Detailed description of what this trigger does
|
|
request_type:
|
|
$ref: "#/components/schemas/HttpRequestType"
|
|
description: "How the request is handled - 'sync' waits for result, 'async' returns job ID immediately, 'sync_sse' streams results via Server-Sent Events"
|
|
authentication_method:
|
|
$ref: "#/components/schemas/AuthenticationMethod"
|
|
description: "How requests are authenticated - 'none' (public), 'windmill' (Windmill token), 'api_key', 'basic_http', 'custom_script', 'signature'"
|
|
is_static_website:
|
|
type: boolean
|
|
description: If true, serves static files from S3/storage instead of running a script
|
|
workspaced_route:
|
|
type: boolean
|
|
description: If true, the route includes the workspace ID in the path
|
|
wrap_body:
|
|
type: boolean
|
|
description: If true, wraps the request body in a 'body' parameter
|
|
raw_string:
|
|
type: boolean
|
|
description: If true, passes the request body as a raw string instead of parsing as JSON
|
|
error_handler_path:
|
|
type: string
|
|
description: Path to a script or flow to run when the triggered job fails
|
|
error_handler_args:
|
|
$ref: "#/components/schemas/ScriptArgs"
|
|
description: Arguments to pass to the error handler
|
|
retry:
|
|
$ref: "../../openflow.openapi.yaml#/components/schemas/Retry"
|
|
description: Retry configuration for failed executions
|
|
|
|
required:
|
|
- route_path
|
|
- request_type
|
|
- authentication_method
|
|
- http_method
|
|
- is_static_website
|
|
- workspaced_route
|
|
- wrap_body
|
|
- raw_string
|
|
|
|
NewHttpTrigger:
|
|
type: object
|
|
properties:
|
|
path:
|
|
type: string
|
|
description: The unique path identifier for this trigger
|
|
script_path:
|
|
type: string
|
|
description: Path to the script or flow to execute when triggered
|
|
route_path:
|
|
type: string
|
|
description: The URL route path that will trigger this endpoint (e.g., 'api/myendpoint'). Must NOT start with a /.
|
|
workspaced_route:
|
|
type: boolean
|
|
description: If true, the route includes the workspace ID in the path
|
|
summary:
|
|
type: string
|
|
nullable: true
|
|
description: Short summary describing the purpose of this trigger
|
|
description:
|
|
type: string
|
|
nullable: true
|
|
description: Detailed description of what this trigger does
|
|
static_asset_config:
|
|
type: object
|
|
nullable: true
|
|
description: Configuration for serving static assets (s3 bucket, storage path, filename)
|
|
properties:
|
|
s3:
|
|
type: string
|
|
description: S3 bucket path for static assets
|
|
storage:
|
|
type: string
|
|
description: Storage path for static assets
|
|
filename:
|
|
type: string
|
|
description: Filename for the static asset
|
|
required:
|
|
- s3
|
|
is_flow:
|
|
type: boolean
|
|
description: True if script_path points to a flow, false if it points to a script
|
|
http_method:
|
|
$ref: "#/components/schemas/HttpMethod"
|
|
description: HTTP method (get, post, put, delete, patch) that triggers this endpoint
|
|
authentication_resource_path:
|
|
type: string
|
|
nullable: true
|
|
description: Path to the resource containing authentication configuration (for api_key, basic_http, custom_script, signature methods)
|
|
is_async:
|
|
type: boolean
|
|
description: Deprecated, use request_type instead
|
|
request_type:
|
|
$ref: "#/components/schemas/HttpRequestType"
|
|
description: "How the request is handled - 'sync' waits for result, 'async' returns job ID immediately, 'sync_sse' streams results via Server-Sent Events"
|
|
authentication_method:
|
|
$ref: "#/components/schemas/AuthenticationMethod"
|
|
description: "How requests are authenticated - 'none' (public), 'windmill' (Windmill token), 'api_key', 'basic_http', 'custom_script', 'signature'"
|
|
is_static_website:
|
|
type: boolean
|
|
description: If true, serves static files from S3/storage instead of running a script
|
|
wrap_body:
|
|
type: boolean
|
|
description: If true, wraps the request body in a 'body' parameter
|
|
mode:
|
|
$ref: "#/components/schemas/TriggerMode"
|
|
raw_string:
|
|
type: boolean
|
|
description: If true, passes the request body as a raw string instead of parsing as JSON
|
|
error_handler_path:
|
|
type: string
|
|
description: Path to a script or flow to run when the triggered job fails
|
|
error_handler_args:
|
|
$ref: "#/components/schemas/ScriptArgs"
|
|
description: Arguments to pass to the error handler
|
|
retry:
|
|
$ref: "../../openflow.openapi.yaml#/components/schemas/Retry"
|
|
description: Retry configuration for failed executions
|
|
permissioned_as:
|
|
type: string
|
|
description: The user or group this trigger runs as. Used during deployment to preserve the original trigger owner.
|
|
preserve_permissioned_as:
|
|
type: boolean
|
|
description: "When true and the caller is a member of the 'wm_deployers' group, preserves the original permissioned_as value instead of overwriting it."
|
|
labels:
|
|
type: array
|
|
items:
|
|
type: string
|
|
|
|
required:
|
|
- path
|
|
- script_path
|
|
- route_path
|
|
- is_flow
|
|
- authentication_method
|
|
- http_method
|
|
- is_static_website
|
|
|
|
EditHttpTrigger:
|
|
type: object
|
|
properties:
|
|
path:
|
|
type: string
|
|
description: The unique path identifier for this trigger
|
|
script_path:
|
|
type: string
|
|
description: Path to the script or flow to execute when triggered
|
|
route_path:
|
|
type: string
|
|
description: The URL route path that will trigger this endpoint (e.g., 'api/myendpoint'). Must NOT start with a /.
|
|
summary:
|
|
type: string
|
|
nullable: true
|
|
description: Short summary describing the purpose of this trigger
|
|
description:
|
|
type: string
|
|
nullable: true
|
|
description: Detailed description of what this trigger does
|
|
workspaced_route:
|
|
type: boolean
|
|
description: If true, the route includes the workspace ID in the path
|
|
static_asset_config:
|
|
type: object
|
|
nullable: true
|
|
description: Configuration for serving static assets (s3 bucket, storage path, filename)
|
|
properties:
|
|
s3:
|
|
type: string
|
|
description: S3 bucket path for static assets
|
|
storage:
|
|
type: string
|
|
description: Storage path for static assets
|
|
filename:
|
|
type: string
|
|
description: Filename for the static asset
|
|
required:
|
|
- s3
|
|
authentication_resource_path:
|
|
type: string
|
|
nullable: true
|
|
description: Path to the resource containing authentication configuration (for api_key, basic_http, custom_script, signature methods)
|
|
is_flow:
|
|
type: boolean
|
|
description: True if script_path points to a flow, false if it points to a script
|
|
http_method:
|
|
$ref: "#/components/schemas/HttpMethod"
|
|
description: HTTP method (get, post, put, delete, patch) that triggers this endpoint
|
|
is_async:
|
|
type: boolean
|
|
description: Deprecated, use request_type instead
|
|
request_type:
|
|
$ref: "#/components/schemas/HttpRequestType"
|
|
description: "How the request is handled - 'sync' waits for result, 'async' returns job ID immediately, 'sync_sse' streams results via Server-Sent Events"
|
|
authentication_method:
|
|
$ref: "#/components/schemas/AuthenticationMethod"
|
|
description: "How requests are authenticated - 'none' (public), 'windmill' (Windmill token), 'api_key', 'basic_http', 'custom_script', 'signature'"
|
|
is_static_website:
|
|
type: boolean
|
|
description: If true, serves static files from S3/storage instead of running a script
|
|
wrap_body:
|
|
type: boolean
|
|
description: If true, wraps the request body in a 'body' parameter
|
|
raw_string:
|
|
type: boolean
|
|
description: If true, passes the request body as a raw string instead of parsing as JSON
|
|
error_handler_path:
|
|
type: string
|
|
description: Path to a script or flow to run when the triggered job fails
|
|
error_handler_args:
|
|
$ref: "#/components/schemas/ScriptArgs"
|
|
description: Arguments to pass to the error handler
|
|
retry:
|
|
$ref: "../../openflow.openapi.yaml#/components/schemas/Retry"
|
|
description: Retry configuration for failed executions
|
|
permissioned_as:
|
|
type: string
|
|
description: The user or group this trigger runs as. Used during deployment to preserve the original trigger owner.
|
|
preserve_permissioned_as:
|
|
type: boolean
|
|
description: "When true and the caller is a member of the 'wm_deployers' group, preserves the original permissioned_as value instead of overwriting it."
|
|
labels:
|
|
type: array
|
|
items:
|
|
type: string
|
|
required:
|
|
- path
|
|
- script_path
|
|
- is_flow
|
|
- kind
|
|
- authentication_method
|
|
- http_method
|
|
- is_static_website
|
|
|
|
TriggersCount:
|
|
type: object
|
|
properties:
|
|
primary_schedule:
|
|
type: object
|
|
properties:
|
|
schedule:
|
|
type: string
|
|
schedule_count:
|
|
type: number
|
|
http_routes_count:
|
|
type: number
|
|
webhook_count:
|
|
type: number
|
|
email_count:
|
|
type: number
|
|
default_email_count:
|
|
type: number
|
|
websocket_count:
|
|
type: number
|
|
postgres_count:
|
|
type: number
|
|
kafka_count:
|
|
type: number
|
|
nats_count:
|
|
type: number
|
|
mqtt_count:
|
|
type: number
|
|
gcp_count:
|
|
type: number
|
|
sqs_count:
|
|
type: number
|
|
nextcloud_count:
|
|
type: number
|
|
google_count:
|
|
type: number
|
|
|
|
WebsocketHeartbeat:
|
|
type: object
|
|
properties:
|
|
interval_secs:
|
|
type: integer
|
|
minimum: 1
|
|
description: Interval in seconds between heartbeat messages
|
|
message:
|
|
type: string
|
|
description: >-
|
|
Message to send as heartbeat. Use {{state}} as a placeholder
|
|
for a value extracted from incoming messages (see state_field).
|
|
state_field:
|
|
type: string
|
|
description: >-
|
|
Optional. Top-level JSON field to extract from incoming messages.
|
|
The extracted value replaces {{state}} in the heartbeat message.
|
|
required:
|
|
- interval_secs
|
|
- message
|
|
|
|
WebsocketTrigger:
|
|
allOf:
|
|
- $ref: "#/components/schemas/TriggerExtraProperty"
|
|
type: object
|
|
properties:
|
|
url:
|
|
type: string
|
|
description: The WebSocket URL to connect to (can be a static URL or computed by a runnable)
|
|
server_id:
|
|
type: string
|
|
description: ID of the server currently handling this trigger (internal)
|
|
last_server_ping:
|
|
type: string
|
|
format: date-time
|
|
description: Timestamp of last server heartbeat (internal)
|
|
error:
|
|
type: string
|
|
description: Last error message if the trigger failed
|
|
filters:
|
|
type: array
|
|
description: Array of key-value filters to match incoming messages (only matching messages trigger the script)
|
|
items:
|
|
type: object
|
|
properties:
|
|
key:
|
|
type: string
|
|
value: {}
|
|
required:
|
|
- key
|
|
- value
|
|
filter_logic:
|
|
type: string
|
|
enum:
|
|
- and
|
|
- or
|
|
default: and
|
|
description: "Logic to apply when evaluating filters. 'and' requires all filters to match, 'or' requires any filter to match."
|
|
initial_messages:
|
|
type: array
|
|
nullable: true
|
|
description: Messages to send immediately after connecting (can be raw strings or computed by runnables)
|
|
items:
|
|
$ref: "#/components/schemas/WebsocketTriggerInitialMessage"
|
|
url_runnable_args:
|
|
description: Arguments to pass to the script/flow that computes the WebSocket URL
|
|
$ref: "#/components/schemas/ScriptArgs"
|
|
nullable: true
|
|
can_return_message:
|
|
type: boolean
|
|
description: If true, the script can return a message to send back through the WebSocket
|
|
can_return_error_result:
|
|
type: boolean
|
|
description: If true, error results are sent back through the WebSocket
|
|
heartbeat:
|
|
$ref: "#/components/schemas/WebsocketHeartbeat"
|
|
nullable: true
|
|
description: Optional periodic heartbeat message configuration
|
|
error_handler_path:
|
|
type: string
|
|
description: Path to a script or flow to run when the triggered job fails
|
|
error_handler_args:
|
|
description: Arguments to pass to the error handler
|
|
$ref: "#/components/schemas/ScriptArgs"
|
|
retry:
|
|
description: Retry configuration for failed executions
|
|
$ref: "../../openflow.openapi.yaml#/components/schemas/Retry"
|
|
|
|
required:
|
|
- url
|
|
- filters
|
|
- can_return_message
|
|
- can_return_error_result
|
|
|
|
NewWebsocketTrigger:
|
|
type: object
|
|
properties:
|
|
path:
|
|
type: string
|
|
description: The unique path identifier for this trigger
|
|
script_path:
|
|
type: string
|
|
description: Path to the script or flow to execute when a message is received
|
|
is_flow:
|
|
type: boolean
|
|
description: True if script_path points to a flow, false if it points to a script
|
|
url:
|
|
type: string
|
|
description: The WebSocket URL to connect to (can be a static URL or computed by a runnable)
|
|
mode:
|
|
$ref: "#/components/schemas/TriggerMode"
|
|
filters:
|
|
type: array
|
|
description: Array of key-value filters to match incoming messages (only matching messages trigger the script)
|
|
items:
|
|
type: object
|
|
properties:
|
|
key:
|
|
type: string
|
|
value: {}
|
|
required:
|
|
- key
|
|
- value
|
|
filter_logic:
|
|
type: string
|
|
enum:
|
|
- and
|
|
- or
|
|
default: and
|
|
description: "Logic to apply when evaluating filters. 'and' requires all filters to match, 'or' requires any filter to match."
|
|
initial_messages:
|
|
type: array
|
|
nullable: true
|
|
description: Messages to send immediately after connecting (can be raw strings or computed by runnables)
|
|
items:
|
|
$ref: "#/components/schemas/WebsocketTriggerInitialMessage"
|
|
url_runnable_args:
|
|
description: Arguments to pass to the script/flow that computes the WebSocket URL
|
|
nullable: true
|
|
$ref: "#/components/schemas/ScriptArgs"
|
|
can_return_message:
|
|
type: boolean
|
|
description: If true, the script can return a message to send back through the WebSocket
|
|
can_return_error_result:
|
|
type: boolean
|
|
description: If true, error results are sent back through the WebSocket
|
|
heartbeat:
|
|
$ref: "#/components/schemas/WebsocketHeartbeat"
|
|
nullable: true
|
|
description: Optional periodic heartbeat message configuration
|
|
error_handler_path:
|
|
type: string
|
|
description: Path to a script or flow to run when the triggered job fails
|
|
error_handler_args:
|
|
description: Arguments to pass to the error handler
|
|
$ref: "#/components/schemas/ScriptArgs"
|
|
retry:
|
|
description: Retry configuration for failed executions
|
|
$ref: "../../openflow.openapi.yaml#/components/schemas/Retry"
|
|
permissioned_as:
|
|
type: string
|
|
description: The user or group this trigger runs as. Used during deployment to preserve the original trigger owner.
|
|
preserve_permissioned_as:
|
|
type: boolean
|
|
description: "When true and the caller is a member of the 'wm_deployers' group, preserves the original permissioned_as value instead of overwriting it."
|
|
labels:
|
|
type: array
|
|
items:
|
|
type: string
|
|
|
|
required:
|
|
- path
|
|
- script_path
|
|
- url
|
|
- is_flow
|
|
- filters
|
|
- can_return_message
|
|
- can_return_error_result
|
|
|
|
EditWebsocketTrigger:
|
|
type: object
|
|
properties:
|
|
url:
|
|
type: string
|
|
description: The WebSocket URL to connect to (can be a static URL or computed by a runnable)
|
|
path:
|
|
type: string
|
|
description: The unique path identifier for this trigger
|
|
script_path:
|
|
type: string
|
|
description: Path to the script or flow to execute when a message is received
|
|
is_flow:
|
|
type: boolean
|
|
description: True if script_path points to a flow, false if it points to a script
|
|
filters:
|
|
type: array
|
|
description: Array of key-value filters to match incoming messages (only matching messages trigger the script)
|
|
items:
|
|
type: object
|
|
properties:
|
|
key:
|
|
type: string
|
|
value: {}
|
|
required:
|
|
- key
|
|
- value
|
|
filter_logic:
|
|
type: string
|
|
enum:
|
|
- and
|
|
- or
|
|
default: and
|
|
description: "Logic to apply when evaluating filters. 'and' requires all filters to match, 'or' requires any filter to match."
|
|
initial_messages:
|
|
type: array
|
|
nullable: true
|
|
description: Messages to send immediately after connecting (can be raw strings or computed by runnables)
|
|
items:
|
|
$ref: "#/components/schemas/WebsocketTriggerInitialMessage"
|
|
url_runnable_args:
|
|
description: Arguments to pass to the script/flow that computes the WebSocket URL
|
|
nullable: true
|
|
$ref: "#/components/schemas/ScriptArgs"
|
|
can_return_message:
|
|
type: boolean
|
|
description: If true, the script can return a message to send back through the WebSocket
|
|
can_return_error_result:
|
|
type: boolean
|
|
description: If true, error results are sent back through the WebSocket
|
|
heartbeat:
|
|
$ref: "#/components/schemas/WebsocketHeartbeat"
|
|
nullable: true
|
|
description: Optional periodic heartbeat message configuration
|
|
error_handler_path:
|
|
type: string
|
|
description: Path to a script or flow to run when the triggered job fails
|
|
error_handler_args:
|
|
description: Arguments to pass to the error handler
|
|
$ref: "#/components/schemas/ScriptArgs"
|
|
retry:
|
|
description: Retry configuration for failed executions
|
|
$ref: "../../openflow.openapi.yaml#/components/schemas/Retry"
|
|
permissioned_as:
|
|
type: string
|
|
description: The user or group this trigger runs as. Used during deployment to preserve the original trigger owner.
|
|
preserve_permissioned_as:
|
|
type: boolean
|
|
description: "When true and the caller is a member of the 'wm_deployers' group, preserves the original permissioned_as value instead of overwriting it."
|
|
labels:
|
|
type: array
|
|
items:
|
|
type: string
|
|
|
|
required:
|
|
- path
|
|
- script_path
|
|
- url
|
|
- is_flow
|
|
- filters
|
|
- can_return_message
|
|
- can_return_error_result
|
|
WebsocketTriggerInitialMessage:
|
|
anyOf:
|
|
- type: object
|
|
properties:
|
|
raw_message:
|
|
type: string
|
|
required:
|
|
- raw_message
|
|
- type: object
|
|
properties:
|
|
runnable_result:
|
|
type: object
|
|
properties:
|
|
path:
|
|
type: string
|
|
args:
|
|
$ref: "#/components/schemas/ScriptArgs"
|
|
is_flow:
|
|
type: boolean
|
|
required:
|
|
- path
|
|
- args
|
|
- is_flow
|
|
required:
|
|
- runnable_result
|
|
|
|
MqttQoS:
|
|
type: string
|
|
enum: ["qos0", "qos1", "qos2"]
|
|
|
|
MqttV3Config:
|
|
type: object
|
|
properties:
|
|
clean_session:
|
|
type: boolean
|
|
|
|
MqttV5Config:
|
|
type: object
|
|
properties:
|
|
clean_start:
|
|
type: boolean
|
|
topic_alias_maximum:
|
|
type: number
|
|
session_expiry_interval:
|
|
type: number
|
|
|
|
MqttSubscribeTopic:
|
|
type: object
|
|
properties:
|
|
qos:
|
|
$ref: "#/components/schemas/MqttQoS"
|
|
topic:
|
|
type: string
|
|
required:
|
|
- qos
|
|
- topic
|
|
|
|
MqttClientVersion:
|
|
type: string
|
|
enum: ["v3", "v5"]
|
|
|
|
MqttTrigger:
|
|
allOf:
|
|
- $ref: "#/components/schemas/TriggerExtraProperty"
|
|
type: object
|
|
properties:
|
|
mqtt_resource_path:
|
|
type: string
|
|
description: Path to the MQTT resource containing broker connection configuration
|
|
subscribe_topics:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/MqttSubscribeTopic"
|
|
description: Array of MQTT topics to subscribe to, each with topic name and QoS level
|
|
v3_config:
|
|
$ref: "#/components/schemas/MqttV3Config"
|
|
nullable: true
|
|
description: MQTT v3 specific configuration (clean_session)
|
|
v5_config:
|
|
$ref: "#/components/schemas/MqttV5Config"
|
|
nullable: true
|
|
description: MQTT v5 specific configuration (clean_start, topic_alias_maximum, session_expiry_interval)
|
|
client_id:
|
|
type: string
|
|
nullable: true
|
|
description: MQTT client ID for this connection
|
|
client_version:
|
|
$ref: "#/components/schemas/MqttClientVersion"
|
|
nullable: true
|
|
description: MQTT protocol version ('v3' or 'v5')
|
|
server_id:
|
|
type: string
|
|
description: ID of the server currently handling this trigger (internal)
|
|
last_server_ping:
|
|
type: string
|
|
format: date-time
|
|
description: Timestamp of last server heartbeat (internal)
|
|
error:
|
|
type: string
|
|
description: Last error message if the trigger failed
|
|
error_handler_path:
|
|
type: string
|
|
description: Path to a script or flow to run when the triggered job fails
|
|
error_handler_args:
|
|
$ref: "#/components/schemas/ScriptArgs"
|
|
description: Arguments to pass to the error handler
|
|
retry:
|
|
$ref: "../../openflow.openapi.yaml#/components/schemas/Retry"
|
|
description: Retry configuration for failed executions
|
|
required:
|
|
- subscribe_topics
|
|
- mqtt_resource_path
|
|
|
|
NewMqttTrigger:
|
|
type: object
|
|
properties:
|
|
mqtt_resource_path:
|
|
type: string
|
|
description: Path to the MQTT resource containing broker connection configuration
|
|
subscribe_topics:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/MqttSubscribeTopic"
|
|
description: Array of MQTT topics to subscribe to, each with topic name and QoS level
|
|
client_id:
|
|
type: string
|
|
nullable: true
|
|
description: MQTT client ID for this connection
|
|
v3_config:
|
|
nullable: true
|
|
$ref: "#/components/schemas/MqttV3Config"
|
|
description: MQTT v3 specific configuration (clean_session)
|
|
v5_config:
|
|
nullable: true
|
|
$ref: "#/components/schemas/MqttV5Config"
|
|
description: MQTT v5 specific configuration (clean_start, topic_alias_maximum, session_expiry_interval)
|
|
client_version:
|
|
nullable: true
|
|
$ref: "#/components/schemas/MqttClientVersion"
|
|
description: MQTT protocol version ('v3' or 'v5')
|
|
path:
|
|
type: string
|
|
description: The unique path identifier for this trigger
|
|
script_path:
|
|
type: string
|
|
description: Path to the script or flow to execute when a message is received
|
|
is_flow:
|
|
type: boolean
|
|
description: True if script_path points to a flow, false if it points to a script
|
|
mode:
|
|
$ref: "#/components/schemas/TriggerMode"
|
|
error_handler_path:
|
|
type: string
|
|
description: Path to a script or flow to run when the triggered job fails
|
|
error_handler_args:
|
|
$ref: "#/components/schemas/ScriptArgs"
|
|
description: Arguments to pass to the error handler
|
|
retry:
|
|
$ref: "../../openflow.openapi.yaml#/components/schemas/Retry"
|
|
description: Retry configuration for failed executions
|
|
permissioned_as:
|
|
type: string
|
|
description: The user or group this trigger runs as. Used during deployment to preserve the original trigger owner.
|
|
preserve_permissioned_as:
|
|
type: boolean
|
|
description: "When true and the caller is a member of the 'wm_deployers' group, preserves the original permissioned_as value instead of overwriting it."
|
|
labels:
|
|
type: array
|
|
items:
|
|
type: string
|
|
required:
|
|
- path
|
|
- script_path
|
|
- is_flow
|
|
- subscribe_topics
|
|
- mqtt_resource_path
|
|
|
|
EditMqttTrigger:
|
|
type: object
|
|
properties:
|
|
mqtt_resource_path:
|
|
type: string
|
|
description: Path to the MQTT resource containing broker connection configuration
|
|
subscribe_topics:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/MqttSubscribeTopic"
|
|
description: Array of MQTT topics to subscribe to, each with topic name and QoS level
|
|
client_id:
|
|
type: string
|
|
nullable: true
|
|
description: MQTT client ID for this connection
|
|
v3_config:
|
|
nullable: true
|
|
$ref: "#/components/schemas/MqttV3Config"
|
|
description: MQTT v3 specific configuration (clean_session)
|
|
v5_config:
|
|
nullable: true
|
|
$ref: "#/components/schemas/MqttV5Config"
|
|
description: MQTT v5 specific configuration (clean_start, topic_alias_maximum, session_expiry_interval)
|
|
client_version:
|
|
nullable: true
|
|
$ref: "#/components/schemas/MqttClientVersion"
|
|
description: MQTT protocol version ('v3' or 'v5')
|
|
path:
|
|
type: string
|
|
description: The unique path identifier for this trigger
|
|
script_path:
|
|
type: string
|
|
description: Path to the script or flow to execute when a message is received
|
|
is_flow:
|
|
type: boolean
|
|
description: True if script_path points to a flow, false if it points to a script
|
|
mode:
|
|
$ref: "#/components/schemas/TriggerMode"
|
|
error_handler_path:
|
|
type: string
|
|
description: Path to a script or flow to run when the triggered job fails
|
|
error_handler_args:
|
|
$ref: "#/components/schemas/ScriptArgs"
|
|
description: Arguments to pass to the error handler
|
|
retry:
|
|
$ref: "../../openflow.openapi.yaml#/components/schemas/Retry"
|
|
description: Retry configuration for failed executions
|
|
permissioned_as:
|
|
type: string
|
|
description: The user or group this trigger runs as. Used during deployment to preserve the original trigger owner.
|
|
preserve_permissioned_as:
|
|
type: boolean
|
|
description: "When true and the caller is a member of the 'wm_deployers' group, preserves the original permissioned_as value instead of overwriting it."
|
|
labels:
|
|
type: array
|
|
items:
|
|
type: string
|
|
required:
|
|
- path
|
|
- script_path
|
|
- is_flow
|
|
- enabled
|
|
- subscribe_topics
|
|
- mqtt_resource_path
|
|
|
|
DeliveryType:
|
|
type: string
|
|
enum:
|
|
- push
|
|
- pull
|
|
description: "Delivery mode for messages. 'push' for HTTP push delivery where messages are sent to a webhook endpoint, 'pull' for polling where the trigger actively fetches messages."
|
|
|
|
PushConfig:
|
|
type: object
|
|
description: "Configuration for push delivery mode."
|
|
properties:
|
|
audience:
|
|
type: string
|
|
description: "The audience claim for OIDC tokens used in push authentication."
|
|
authenticate:
|
|
type: boolean
|
|
description: "If true, push messages will include OIDC authentication tokens."
|
|
required:
|
|
- authenticate
|
|
- base_endpoint
|
|
|
|
GcpTrigger:
|
|
allOf:
|
|
- $ref: "#/components/schemas/TriggerExtraProperty"
|
|
type: object
|
|
description: "A Google Cloud Pub/Sub trigger that executes a script or flow when messages are received."
|
|
properties:
|
|
gcp_resource_path:
|
|
type: string
|
|
description: "Path to the GCP resource containing service account credentials for authentication."
|
|
topic_id:
|
|
type: string
|
|
description: "Google Cloud Pub/Sub topic ID to subscribe to."
|
|
subscription_id:
|
|
type: string
|
|
description: "Google Cloud Pub/Sub subscription ID."
|
|
server_id:
|
|
type: string
|
|
description: "ID of the server currently handling this trigger (internal use)."
|
|
delivery_type:
|
|
$ref: "#/components/schemas/DeliveryType"
|
|
delivery_config:
|
|
$ref: "#/components/schemas/PushConfig"
|
|
nullable: true
|
|
subscription_mode:
|
|
$ref: "#/components/schemas/SubscriptionMode"
|
|
last_server_ping:
|
|
type: string
|
|
format: date-time
|
|
description: "Timestamp of last server heartbeat (internal use)."
|
|
error:
|
|
type: string
|
|
description: "Last error message if the trigger failed."
|
|
error_handler_path:
|
|
type: string
|
|
description: "Path to a script or flow to run when the triggered job fails."
|
|
error_handler_args:
|
|
$ref: "#/components/schemas/ScriptArgs"
|
|
description: "Arguments to pass to the error handler."
|
|
retry:
|
|
$ref: "../../openflow.openapi.yaml#/components/schemas/Retry"
|
|
description: "Retry configuration for failed executions."
|
|
required:
|
|
- gcp_resource_path
|
|
- topic_id
|
|
- subscription_id
|
|
- delivery_type
|
|
- subscription_mode
|
|
|
|
SubscriptionMode:
|
|
type: string
|
|
enum:
|
|
- existing
|
|
- create_update
|
|
description: "The mode of subscription. 'existing' means using an existing GCP subscription, while 'create_update' involves creating or updating a new subscription."
|
|
|
|
GcpTriggerData:
|
|
type: object
|
|
description: "Data for creating or updating a Google Cloud Pub/Sub trigger."
|
|
properties:
|
|
gcp_resource_path:
|
|
type: string
|
|
description: "Path to the GCP resource containing service account credentials for authentication."
|
|
subscription_mode:
|
|
$ref: "#/components/schemas/SubscriptionMode"
|
|
topic_id:
|
|
type: string
|
|
description: "Google Cloud Pub/Sub topic ID to subscribe to."
|
|
subscription_id:
|
|
type: string
|
|
description: "Google Cloud Pub/Sub subscription ID."
|
|
base_endpoint:
|
|
type: string
|
|
description: "Base URL for push delivery endpoint."
|
|
delivery_type:
|
|
$ref: "#/components/schemas/DeliveryType"
|
|
delivery_config:
|
|
nullable: true
|
|
$ref: "#/components/schemas/PushConfig"
|
|
path:
|
|
type: string
|
|
description: "The unique path identifier for this trigger."
|
|
script_path:
|
|
type: string
|
|
description: "Path to the script or flow to execute when a message is received."
|
|
is_flow:
|
|
type: boolean
|
|
description: "True if script_path points to a flow, false if it points to a script."
|
|
mode:
|
|
$ref: "#/components/schemas/TriggerMode"
|
|
auto_acknowledge_msg:
|
|
type: boolean
|
|
description: "If true, automatically acknowledge messages after processing."
|
|
ack_deadline:
|
|
type: integer
|
|
format: int32
|
|
minimum: 10
|
|
maximum: 600
|
|
description: "Time in seconds within which the message must be acknowledged. If not provided, defaults to the subscription's acknowledgment deadline (600 seconds)."
|
|
error_handler_path:
|
|
type: string
|
|
description: "Path to a script or flow to run when the triggered job fails."
|
|
error_handler_args:
|
|
$ref: "#/components/schemas/ScriptArgs"
|
|
description: "Arguments to pass to the error handler."
|
|
retry:
|
|
$ref: "../../openflow.openapi.yaml#/components/schemas/Retry"
|
|
description: "Retry configuration for failed executions."
|
|
permissioned_as:
|
|
type: string
|
|
description: The user or group this trigger runs as. Used during deployment to preserve the original trigger owner.
|
|
preserve_permissioned_as:
|
|
type: boolean
|
|
description: "When true and the caller is a member of the 'wm_deployers' group, preserves the original permissioned_as value instead of overwriting it."
|
|
labels:
|
|
type: array
|
|
items:
|
|
type: string
|
|
required:
|
|
- path
|
|
- script_path
|
|
- is_flow
|
|
- gcp_resource_path
|
|
- topic_id
|
|
- subscription_mode
|
|
|
|
GetAllTopicSubscription:
|
|
type: object
|
|
properties:
|
|
topic_id:
|
|
type: string
|
|
required:
|
|
- topic_id
|
|
|
|
DeleteGcpSubscription:
|
|
type: object
|
|
properties:
|
|
subscription_id:
|
|
type: string
|
|
required:
|
|
- subscription_id
|
|
|
|
AwsAuthResourceType:
|
|
type: string
|
|
enum:
|
|
- oidc
|
|
- credentials
|
|
|
|
SqsTrigger:
|
|
allOf:
|
|
- $ref: "#/components/schemas/TriggerExtraProperty"
|
|
type: object
|
|
properties:
|
|
queue_url:
|
|
type: string
|
|
description: The full URL of the AWS SQS queue to poll for messages
|
|
aws_auth_resource_type:
|
|
$ref: "#/components/schemas/AwsAuthResourceType"
|
|
description: Authentication type - 'credentials' for access key/secret, 'oidc' for OpenID Connect
|
|
aws_resource_path:
|
|
type: string
|
|
description: Path to the AWS resource containing credentials or OIDC configuration
|
|
message_attributes:
|
|
type: array
|
|
nullable: true
|
|
items:
|
|
type: string
|
|
description: Array of SQS message attribute names to include with each message
|
|
server_id:
|
|
type: string
|
|
description: ID of the server currently handling this trigger (internal)
|
|
last_server_ping:
|
|
type: string
|
|
format: date-time
|
|
description: Timestamp of last server heartbeat (internal)
|
|
error:
|
|
type: string
|
|
description: Last error message if the trigger failed
|
|
error_handler_path:
|
|
type: string
|
|
description: Path to a script or flow to run when the triggered job fails
|
|
error_handler_args:
|
|
$ref: "#/components/schemas/ScriptArgs"
|
|
description: Arguments to pass to the error handler
|
|
retry:
|
|
$ref: "../../openflow.openapi.yaml#/components/schemas/Retry"
|
|
description: Retry configuration for failed executions
|
|
|
|
required:
|
|
- queue_url
|
|
- aws_resource_path
|
|
- aws_auth_resource_type
|
|
|
|
LoggedWizardStatus:
|
|
type: string
|
|
enum:
|
|
- OK
|
|
- SKIP
|
|
- FAIL
|
|
|
|
CustomInstanceDbLogs:
|
|
type: object
|
|
properties:
|
|
super_admin:
|
|
$ref: "#/components/schemas/LoggedWizardStatus"
|
|
database_credentials:
|
|
$ref: "#/components/schemas/LoggedWizardStatus"
|
|
valid_dbname:
|
|
$ref: "#/components/schemas/LoggedWizardStatus"
|
|
created_database:
|
|
$ref: "#/components/schemas/LoggedWizardStatus"
|
|
db_connect:
|
|
$ref: "#/components/schemas/LoggedWizardStatus"
|
|
grant_permissions:
|
|
$ref: "#/components/schemas/LoggedWizardStatus"
|
|
|
|
CustomInstanceDbTag:
|
|
type: string
|
|
enum:
|
|
- ducklake
|
|
- datatable
|
|
|
|
CustomInstanceDb:
|
|
type: object
|
|
required:
|
|
- logs
|
|
- success
|
|
properties:
|
|
logs:
|
|
$ref: "#/components/schemas/CustomInstanceDbLogs"
|
|
success:
|
|
type: boolean
|
|
description: Whether the operation completed successfully
|
|
example: true
|
|
error:
|
|
type: string
|
|
nullable: true
|
|
description: Error message if the operation failed
|
|
example: "Connection timeout"
|
|
tag:
|
|
$ref: "#/components/schemas/CustomInstanceDbTag"
|
|
|
|
NewSqsTrigger:
|
|
type: object
|
|
properties:
|
|
queue_url:
|
|
type: string
|
|
description: The full URL of the AWS SQS queue to poll for messages
|
|
aws_auth_resource_type:
|
|
$ref: "#/components/schemas/AwsAuthResourceType"
|
|
description: Authentication type - 'credentials' for access key/secret, 'oidc' for OpenID Connect
|
|
aws_resource_path:
|
|
type: string
|
|
description: Path to the AWS resource containing credentials or OIDC configuration
|
|
message_attributes:
|
|
type: array
|
|
nullable: true
|
|
items:
|
|
type: string
|
|
description: Array of SQS message attribute names to include with each message
|
|
path:
|
|
type: string
|
|
description: The unique path identifier for this trigger
|
|
script_path:
|
|
type: string
|
|
description: Path to the script or flow to execute when a message is received
|
|
is_flow:
|
|
type: boolean
|
|
description: True if script_path points to a flow, false if it points to a script
|
|
mode:
|
|
$ref: "#/components/schemas/TriggerMode"
|
|
error_handler_path:
|
|
type: string
|
|
description: Path to a script or flow to run when the triggered job fails
|
|
error_handler_args:
|
|
$ref: "#/components/schemas/ScriptArgs"
|
|
description: Arguments to pass to the error handler
|
|
retry:
|
|
$ref: "../../openflow.openapi.yaml#/components/schemas/Retry"
|
|
description: Retry configuration for failed executions
|
|
permissioned_as:
|
|
type: string
|
|
description: The user or group this trigger runs as. Used during deployment to preserve the original trigger owner.
|
|
preserve_permissioned_as:
|
|
type: boolean
|
|
description: "When true and the caller is a member of the 'wm_deployers' group, preserves the original permissioned_as value instead of overwriting it."
|
|
labels:
|
|
type: array
|
|
items:
|
|
type: string
|
|
required:
|
|
- queue_url
|
|
- aws_resource_path
|
|
- path
|
|
- script_path
|
|
- is_flow
|
|
- aws_auth_resource_type
|
|
|
|
EditSqsTrigger:
|
|
type: object
|
|
properties:
|
|
queue_url:
|
|
type: string
|
|
description: The full URL of the AWS SQS queue to poll for messages
|
|
aws_auth_resource_type:
|
|
$ref: "#/components/schemas/AwsAuthResourceType"
|
|
description: Authentication type - 'credentials' for access key/secret, 'oidc' for OpenID Connect
|
|
aws_resource_path:
|
|
type: string
|
|
description: Path to the AWS resource containing credentials or OIDC configuration
|
|
message_attributes:
|
|
type: array
|
|
nullable: true
|
|
items:
|
|
type: string
|
|
description: Array of SQS message attribute names to include with each message
|
|
path:
|
|
type: string
|
|
description: The unique path identifier for this trigger
|
|
script_path:
|
|
type: string
|
|
description: Path to the script or flow to execute when a message is received
|
|
is_flow:
|
|
type: boolean
|
|
description: True if script_path points to a flow, false if it points to a script
|
|
mode:
|
|
$ref: "#/components/schemas/TriggerMode"
|
|
error_handler_path:
|
|
type: string
|
|
description: Path to a script or flow to run when the triggered job fails
|
|
error_handler_args:
|
|
$ref: "#/components/schemas/ScriptArgs"
|
|
description: Arguments to pass to the error handler
|
|
retry:
|
|
$ref: "../../openflow.openapi.yaml#/components/schemas/Retry"
|
|
description: Retry configuration for failed executions
|
|
permissioned_as:
|
|
type: string
|
|
description: The user or group this trigger runs as. Used during deployment to preserve the original trigger owner.
|
|
preserve_permissioned_as:
|
|
type: boolean
|
|
description: "When true and the caller is a member of the 'wm_deployers' group, preserves the original permissioned_as value instead of overwriting it."
|
|
labels:
|
|
type: array
|
|
items:
|
|
type: string
|
|
required:
|
|
- queue_url
|
|
- aws_resource_path
|
|
- path
|
|
- script_path
|
|
- is_flow
|
|
- enabled
|
|
- aws_auth_resource_type
|
|
|
|
Slot:
|
|
type: object
|
|
properties:
|
|
name:
|
|
type: string
|
|
|
|
SlotList:
|
|
type: object
|
|
properties:
|
|
slot_name:
|
|
type: string
|
|
active:
|
|
type: boolean
|
|
|
|
PublicationData:
|
|
type: object
|
|
properties:
|
|
table_to_track:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/Relations"
|
|
transaction_to_track:
|
|
type: array
|
|
items:
|
|
type: string
|
|
required:
|
|
- transaction_to_track
|
|
|
|
TableToTrack:
|
|
type: array
|
|
items:
|
|
type: object
|
|
properties:
|
|
table_name:
|
|
type: string
|
|
columns_name:
|
|
type: array
|
|
items:
|
|
type: string
|
|
where_clause:
|
|
type: string
|
|
required:
|
|
- table_name
|
|
|
|
Relations:
|
|
type: object
|
|
properties:
|
|
schema_name:
|
|
type: string
|
|
table_to_track:
|
|
$ref: "#/components/schemas/TableToTrack"
|
|
required:
|
|
- schema_name
|
|
- table_to_track
|
|
|
|
Language:
|
|
type: string
|
|
enum:
|
|
- Typescript
|
|
|
|
TemplateScript:
|
|
type: object
|
|
properties:
|
|
postgres_resource_path:
|
|
type: string
|
|
relations:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/Relations"
|
|
language:
|
|
$ref: "#/components/schemas/Language"
|
|
required:
|
|
- postgres_resource_path
|
|
- relations
|
|
- language
|
|
|
|
PostgresTrigger:
|
|
allOf:
|
|
- $ref: "#/components/schemas/TriggerExtraProperty"
|
|
type: object
|
|
properties:
|
|
postgres_resource_path:
|
|
type: string
|
|
description: Path to the PostgreSQL resource containing connection configuration
|
|
publication_name:
|
|
type: string
|
|
description: Name of the PostgreSQL publication to subscribe to for change data capture
|
|
server_id:
|
|
type: string
|
|
description: ID of the server currently handling this trigger (internal)
|
|
replication_slot_name:
|
|
type: string
|
|
description: Name of the PostgreSQL logical replication slot to use
|
|
error:
|
|
type: string
|
|
description: Last error message if the trigger failed
|
|
last_server_ping:
|
|
type: string
|
|
format: date-time
|
|
description: Timestamp of last server heartbeat (internal)
|
|
error_handler_path:
|
|
type: string
|
|
description: Path to a script or flow to run when the triggered job fails
|
|
error_handler_args:
|
|
$ref: "#/components/schemas/ScriptArgs"
|
|
description: Arguments to pass to the error handler
|
|
retry:
|
|
$ref: "../../openflow.openapi.yaml#/components/schemas/Retry"
|
|
description: Retry configuration for failed executions
|
|
required:
|
|
- postgres_resource_path
|
|
- replication_slot_name
|
|
- publication_name
|
|
|
|
NewPostgresTrigger:
|
|
type: object
|
|
properties:
|
|
replication_slot_name:
|
|
type: string
|
|
description: Name of the PostgreSQL logical replication slot to use
|
|
publication_name:
|
|
type: string
|
|
description: Name of the PostgreSQL publication to subscribe to for change data capture
|
|
path:
|
|
type: string
|
|
description: The unique path identifier for this trigger
|
|
script_path:
|
|
type: string
|
|
description: Path to the script or flow to execute when database changes are detected
|
|
is_flow:
|
|
type: boolean
|
|
description: True if script_path points to a flow, false if it points to a script
|
|
mode:
|
|
$ref: "#/components/schemas/TriggerMode"
|
|
postgres_resource_path:
|
|
type: string
|
|
description: Path to the PostgreSQL resource containing connection configuration
|
|
publication:
|
|
$ref: "#/components/schemas/PublicationData"
|
|
description: Configuration for creating/managing the publication (tables, operations)
|
|
error_handler_path:
|
|
type: string
|
|
description: Path to a script or flow to run when the triggered job fails
|
|
error_handler_args:
|
|
$ref: "#/components/schemas/ScriptArgs"
|
|
description: Arguments to pass to the error handler
|
|
retry:
|
|
$ref: "../../openflow.openapi.yaml#/components/schemas/Retry"
|
|
description: Retry configuration for failed executions
|
|
permissioned_as:
|
|
type: string
|
|
description: The user or group this trigger runs as. Used during deployment to preserve the original trigger owner.
|
|
preserve_permissioned_as:
|
|
type: boolean
|
|
description: "When true and the caller is a member of the 'wm_deployers' group, preserves the original permissioned_as value instead of overwriting it."
|
|
labels:
|
|
type: array
|
|
items:
|
|
type: string
|
|
required:
|
|
- path
|
|
- script_path
|
|
- is_flow
|
|
- enabled
|
|
- postgres_resource_path
|
|
|
|
EditPostgresTrigger:
|
|
type: object
|
|
properties:
|
|
replication_slot_name:
|
|
type: string
|
|
description: Name of the PostgreSQL logical replication slot to use
|
|
publication_name:
|
|
type: string
|
|
description: Name of the PostgreSQL publication to subscribe to for change data capture
|
|
path:
|
|
type: string
|
|
description: The unique path identifier for this trigger
|
|
script_path:
|
|
type: string
|
|
description: Path to the script or flow to execute when database changes are detected
|
|
is_flow:
|
|
type: boolean
|
|
description: True if script_path points to a flow, false if it points to a script
|
|
mode:
|
|
$ref: "#/components/schemas/TriggerMode"
|
|
postgres_resource_path:
|
|
type: string
|
|
description: Path to the PostgreSQL resource containing connection configuration
|
|
publication:
|
|
$ref: "#/components/schemas/PublicationData"
|
|
description: Configuration for creating/managing the publication (tables, operations)
|
|
error_handler_path:
|
|
type: string
|
|
description: Path to a script or flow to run when the triggered job fails
|
|
error_handler_args:
|
|
$ref: "#/components/schemas/ScriptArgs"
|
|
description: Arguments to pass to the error handler
|
|
retry:
|
|
$ref: "../../openflow.openapi.yaml#/components/schemas/Retry"
|
|
description: Retry configuration for failed executions
|
|
permissioned_as:
|
|
type: string
|
|
description: The user or group this trigger runs as. Used during deployment to preserve the original trigger owner.
|
|
preserve_permissioned_as:
|
|
type: boolean
|
|
description: "When true and the caller is a member of the 'wm_deployers' group, preserves the original permissioned_as value instead of overwriting it."
|
|
labels:
|
|
type: array
|
|
items:
|
|
type: string
|
|
required:
|
|
- path
|
|
- script_path
|
|
- is_flow
|
|
- enabled
|
|
- postgres_resource_path
|
|
- publication_name
|
|
- replication_slot_name
|
|
|
|
KafkaTrigger:
|
|
allOf:
|
|
- $ref: "#/components/schemas/TriggerExtraProperty"
|
|
type: object
|
|
properties:
|
|
kafka_resource_path:
|
|
type: string
|
|
description: Path to the Kafka resource containing connection configuration
|
|
group_id:
|
|
type: string
|
|
description: Kafka consumer group ID for this trigger
|
|
topics:
|
|
type: array
|
|
items:
|
|
type: string
|
|
description: Array of Kafka topic names to subscribe to
|
|
filters:
|
|
type: array
|
|
items:
|
|
type: object
|
|
properties:
|
|
key:
|
|
type: string
|
|
value: {}
|
|
required:
|
|
- key
|
|
- value
|
|
filter_logic:
|
|
type: string
|
|
enum:
|
|
- and
|
|
- or
|
|
default: and
|
|
description: "Logic to apply when evaluating filters. 'and' requires all filters to match, 'or' requires any filter to match."
|
|
auto_offset_reset:
|
|
type: string
|
|
enum:
|
|
- latest
|
|
- earliest
|
|
default: latest
|
|
description: "Initial offset behavior when consumer group has no committed offset. 'latest' starts from new messages only, 'earliest' starts from the beginning."
|
|
auto_commit:
|
|
type: boolean
|
|
default: true
|
|
description: "When true (default), offsets are committed automatically after receiving each message. When false, you must manually commit offsets using the commit_offsets endpoint."
|
|
server_id:
|
|
type: string
|
|
description: ID of the server currently handling this trigger (internal)
|
|
last_server_ping:
|
|
type: string
|
|
format: date-time
|
|
description: Timestamp of last server heartbeat (internal)
|
|
error:
|
|
type: string
|
|
description: Last error message if the trigger failed
|
|
error_handler_path:
|
|
type: string
|
|
description: Path to a script or flow to run when the triggered job fails
|
|
error_handler_args:
|
|
$ref: "#/components/schemas/ScriptArgs"
|
|
description: Arguments to pass to the error handler
|
|
retry:
|
|
$ref: "../../openflow.openapi.yaml#/components/schemas/Retry"
|
|
description: Retry configuration for failed executions
|
|
|
|
required:
|
|
- kafka_resource_path
|
|
- group_id
|
|
- topics
|
|
- filters
|
|
|
|
NewKafkaTrigger:
|
|
type: object
|
|
properties:
|
|
path:
|
|
type: string
|
|
description: The unique path identifier for this trigger
|
|
script_path:
|
|
type: string
|
|
description: Path to the script or flow to execute when a message is received
|
|
is_flow:
|
|
type: boolean
|
|
description: True if script_path points to a flow, false if it points to a script
|
|
kafka_resource_path:
|
|
type: string
|
|
description: Path to the Kafka resource containing connection configuration
|
|
group_id:
|
|
type: string
|
|
description: Kafka consumer group ID for this trigger
|
|
topics:
|
|
type: array
|
|
items:
|
|
type: string
|
|
description: Array of Kafka topic names to subscribe to
|
|
filters:
|
|
type: array
|
|
items:
|
|
type: object
|
|
properties:
|
|
key:
|
|
type: string
|
|
value: {}
|
|
required:
|
|
- key
|
|
- value
|
|
filter_logic:
|
|
type: string
|
|
enum:
|
|
- and
|
|
- or
|
|
default: and
|
|
description: "Logic to apply when evaluating filters. 'and' requires all filters to match, 'or' requires any filter to match."
|
|
auto_offset_reset:
|
|
type: string
|
|
enum:
|
|
- latest
|
|
- earliest
|
|
default: latest
|
|
description: "Initial offset behavior when consumer group has no committed offset."
|
|
auto_commit:
|
|
type: boolean
|
|
default: true
|
|
description: "When true (default), offsets are committed automatically after receiving each message. When false, you must manually commit offsets using the commit_offsets endpoint."
|
|
mode:
|
|
$ref: "#/components/schemas/TriggerMode"
|
|
error_handler_path:
|
|
type: string
|
|
description: Path to a script or flow to run when the triggered job fails
|
|
error_handler_args:
|
|
$ref: "#/components/schemas/ScriptArgs"
|
|
description: Arguments to pass to the error handler
|
|
retry:
|
|
$ref: "../../openflow.openapi.yaml#/components/schemas/Retry"
|
|
description: Retry configuration for failed executions
|
|
permissioned_as:
|
|
type: string
|
|
description: The user or group this trigger runs as. Used during deployment to preserve the original trigger owner.
|
|
preserve_permissioned_as:
|
|
type: boolean
|
|
description: "When true and the caller is a member of the 'wm_deployers' group, preserves the original permissioned_as value instead of overwriting it."
|
|
labels:
|
|
type: array
|
|
items:
|
|
type: string
|
|
|
|
required:
|
|
- path
|
|
- script_path
|
|
- is_flow
|
|
- kafka_resource_path
|
|
- group_id
|
|
- topics
|
|
- filters
|
|
|
|
EditKafkaTrigger:
|
|
type: object
|
|
properties:
|
|
kafka_resource_path:
|
|
type: string
|
|
description: Path to the Kafka resource containing connection configuration
|
|
group_id:
|
|
type: string
|
|
description: Kafka consumer group ID for this trigger
|
|
topics:
|
|
type: array
|
|
items:
|
|
type: string
|
|
description: Array of Kafka topic names to subscribe to
|
|
filters:
|
|
type: array
|
|
items:
|
|
type: object
|
|
properties:
|
|
key:
|
|
type: string
|
|
value: {}
|
|
required:
|
|
- key
|
|
- value
|
|
filter_logic:
|
|
type: string
|
|
enum:
|
|
- and
|
|
- or
|
|
default: and
|
|
description: "Logic to apply when evaluating filters. 'and' requires all filters to match, 'or' requires any filter to match."
|
|
auto_offset_reset:
|
|
type: string
|
|
enum:
|
|
- latest
|
|
- earliest
|
|
default: latest
|
|
description: "Initial offset behavior when consumer group has no committed offset."
|
|
auto_commit:
|
|
type: boolean
|
|
default: true
|
|
description: "When true (default), offsets are committed automatically after receiving each message. When false, you must manually commit offsets using the commit_offsets endpoint."
|
|
path:
|
|
type: string
|
|
description: The unique path identifier for this trigger
|
|
script_path:
|
|
type: string
|
|
description: Path to the script or flow to execute when a message is received
|
|
is_flow:
|
|
type: boolean
|
|
description: True if script_path points to a flow, false if it points to a script
|
|
error_handler_path:
|
|
type: string
|
|
description: Path to a script or flow to run when the triggered job fails
|
|
error_handler_args:
|
|
$ref: "#/components/schemas/ScriptArgs"
|
|
description: Arguments to pass to the error handler
|
|
retry:
|
|
$ref: "../../openflow.openapi.yaml#/components/schemas/Retry"
|
|
description: Retry configuration for failed executions
|
|
permissioned_as:
|
|
type: string
|
|
description: The user or group this trigger runs as. Used during deployment to preserve the original trigger owner.
|
|
preserve_permissioned_as:
|
|
type: boolean
|
|
description: "When true and the caller is a member of the 'wm_deployers' group, preserves the original permissioned_as value instead of overwriting it."
|
|
labels:
|
|
type: array
|
|
items:
|
|
type: string
|
|
|
|
required:
|
|
- path
|
|
- script_path
|
|
- kafka_resource_path
|
|
- group_id
|
|
- topics
|
|
- filters
|
|
- is_flow
|
|
|
|
NatsTrigger:
|
|
allOf:
|
|
- $ref: "#/components/schemas/TriggerExtraProperty"
|
|
type: object
|
|
properties:
|
|
nats_resource_path:
|
|
type: string
|
|
description: Path to the NATS resource containing connection configuration
|
|
use_jetstream:
|
|
type: boolean
|
|
description: If true, uses NATS JetStream for durable message delivery
|
|
stream_name:
|
|
type: string
|
|
nullable: true
|
|
description: JetStream stream name (required when use_jetstream is true)
|
|
consumer_name:
|
|
type: string
|
|
nullable: true
|
|
description: JetStream consumer name (required when use_jetstream is true)
|
|
subjects:
|
|
type: array
|
|
items:
|
|
type: string
|
|
description: Array of NATS subjects to subscribe to
|
|
server_id:
|
|
type: string
|
|
description: ID of the server currently handling this trigger (internal)
|
|
last_server_ping:
|
|
type: string
|
|
format: date-time
|
|
description: Timestamp of last server heartbeat (internal)
|
|
error:
|
|
type: string
|
|
description: Last error message if the trigger failed
|
|
error_handler_path:
|
|
type: string
|
|
description: Path to a script or flow to run when the triggered job fails
|
|
error_handler_args:
|
|
$ref: "#/components/schemas/ScriptArgs"
|
|
description: Arguments to pass to the error handler
|
|
retry:
|
|
$ref: "../../openflow.openapi.yaml#/components/schemas/Retry"
|
|
description: Retry configuration for failed executions
|
|
|
|
required:
|
|
- nats_resource_path
|
|
- use_jetstream
|
|
- subjects
|
|
|
|
NewNatsTrigger:
|
|
type: object
|
|
properties:
|
|
path:
|
|
type: string
|
|
description: The unique path identifier for this trigger
|
|
script_path:
|
|
type: string
|
|
description: Path to the script or flow to execute when a message is received
|
|
is_flow:
|
|
type: boolean
|
|
description: True if script_path points to a flow, false if it points to a script
|
|
nats_resource_path:
|
|
type: string
|
|
description: Path to the NATS resource containing connection configuration
|
|
use_jetstream:
|
|
type: boolean
|
|
description: If true, uses NATS JetStream for durable message delivery
|
|
stream_name:
|
|
type: string
|
|
nullable: true
|
|
description: JetStream stream name (required when use_jetstream is true)
|
|
consumer_name:
|
|
type: string
|
|
nullable: true
|
|
description: JetStream consumer name (required when use_jetstream is true)
|
|
subjects:
|
|
type: array
|
|
items:
|
|
type: string
|
|
description: Array of NATS subjects to subscribe to
|
|
mode:
|
|
$ref: "#/components/schemas/TriggerMode"
|
|
error_handler_path:
|
|
type: string
|
|
description: Path to a script or flow to run when the triggered job fails
|
|
error_handler_args:
|
|
$ref: "#/components/schemas/ScriptArgs"
|
|
description: Arguments to pass to the error handler
|
|
retry:
|
|
$ref: "../../openflow.openapi.yaml#/components/schemas/Retry"
|
|
description: Retry configuration for failed executions
|
|
permissioned_as:
|
|
type: string
|
|
description: The user or group this trigger runs as. Used during deployment to preserve the original trigger owner.
|
|
preserve_permissioned_as:
|
|
type: boolean
|
|
description: "When true and the caller is a member of the 'wm_deployers' group, preserves the original permissioned_as value instead of overwriting it."
|
|
labels:
|
|
type: array
|
|
items:
|
|
type: string
|
|
|
|
required:
|
|
- path
|
|
- script_path
|
|
- is_flow
|
|
- nats_resource_path
|
|
- use_jetstream
|
|
- subjects
|
|
|
|
EditNatsTrigger:
|
|
type: object
|
|
properties:
|
|
nats_resource_path:
|
|
type: string
|
|
description: Path to the NATS resource containing connection configuration
|
|
use_jetstream:
|
|
type: boolean
|
|
description: If true, uses NATS JetStream for durable message delivery
|
|
stream_name:
|
|
type: string
|
|
nullable: true
|
|
description: JetStream stream name (required when use_jetstream is true)
|
|
consumer_name:
|
|
type: string
|
|
nullable: true
|
|
description: JetStream consumer name (required when use_jetstream is true)
|
|
subjects:
|
|
type: array
|
|
items:
|
|
type: string
|
|
description: Array of NATS subjects to subscribe to
|
|
path:
|
|
type: string
|
|
description: The unique path identifier for this trigger
|
|
script_path:
|
|
type: string
|
|
description: Path to the script or flow to execute when a message is received
|
|
is_flow:
|
|
type: boolean
|
|
description: True if script_path points to a flow, false if it points to a script
|
|
error_handler_path:
|
|
type: string
|
|
description: Path to a script or flow to run when the triggered job fails
|
|
error_handler_args:
|
|
$ref: "#/components/schemas/ScriptArgs"
|
|
description: Arguments to pass to the error handler
|
|
retry:
|
|
$ref: "../../openflow.openapi.yaml#/components/schemas/Retry"
|
|
description: Retry configuration for failed executions
|
|
permissioned_as:
|
|
type: string
|
|
description: The user or group this trigger runs as. Used during deployment to preserve the original trigger owner.
|
|
preserve_permissioned_as:
|
|
type: boolean
|
|
description: "When true and the caller is a member of the 'wm_deployers' group, preserves the original permissioned_as value instead of overwriting it."
|
|
labels:
|
|
type: array
|
|
items:
|
|
type: string
|
|
required:
|
|
- path
|
|
- script_path
|
|
- nats_resource_path
|
|
- use_jetstream
|
|
- subjects
|
|
- is_flow
|
|
|
|
EmailTrigger:
|
|
allOf:
|
|
- $ref: "#/components/schemas/TriggerExtraProperty"
|
|
type: object
|
|
properties:
|
|
local_part:
|
|
type: string
|
|
workspaced_local_part:
|
|
type: boolean
|
|
error_handler_path:
|
|
type: string
|
|
error_handler_args:
|
|
$ref: "#/components/schemas/ScriptArgs"
|
|
retry:
|
|
$ref: "../../openflow.openapi.yaml#/components/schemas/Retry"
|
|
|
|
required:
|
|
- local_part
|
|
|
|
NewEmailTrigger:
|
|
type: object
|
|
properties:
|
|
path:
|
|
type: string
|
|
script_path:
|
|
type: string
|
|
local_part:
|
|
type: string
|
|
workspaced_local_part:
|
|
type: boolean
|
|
is_flow:
|
|
type: boolean
|
|
error_handler_path:
|
|
type: string
|
|
error_handler_args:
|
|
$ref: "#/components/schemas/ScriptArgs"
|
|
retry:
|
|
$ref: "../../openflow.openapi.yaml#/components/schemas/Retry"
|
|
mode:
|
|
$ref: "#/components/schemas/TriggerMode"
|
|
permissioned_as:
|
|
type: string
|
|
description: The user or group this trigger runs as. Used during deployment to preserve the original trigger owner.
|
|
preserve_permissioned_as:
|
|
type: boolean
|
|
description: "When true and the caller is a member of the 'wm_deployers' group, preserves the original permissioned_as value instead of overwriting it."
|
|
labels:
|
|
type: array
|
|
items:
|
|
type: string
|
|
|
|
required:
|
|
- path
|
|
- script_path
|
|
- local_part
|
|
- is_flow
|
|
|
|
EditEmailTrigger:
|
|
type: object
|
|
properties:
|
|
path:
|
|
type: string
|
|
script_path:
|
|
type: string
|
|
local_part:
|
|
type: string
|
|
workspaced_local_part:
|
|
type: boolean
|
|
is_flow:
|
|
type: boolean
|
|
error_handler_path:
|
|
type: string
|
|
error_handler_args:
|
|
$ref: "#/components/schemas/ScriptArgs"
|
|
retry:
|
|
$ref: "../../openflow.openapi.yaml#/components/schemas/Retry"
|
|
permissioned_as:
|
|
type: string
|
|
description: The user or group this trigger runs as. Used during deployment to preserve the original trigger owner.
|
|
preserve_permissioned_as:
|
|
type: boolean
|
|
description: "When true and the caller is a member of the 'wm_deployers' group, preserves the original permissioned_as value instead of overwriting it."
|
|
labels:
|
|
type: array
|
|
items:
|
|
type: string
|
|
required:
|
|
- path
|
|
- script_path
|
|
- is_flow
|
|
|
|
Group:
|
|
type: object
|
|
properties:
|
|
name:
|
|
type: string
|
|
summary:
|
|
type: string
|
|
members:
|
|
type: array
|
|
items:
|
|
type: string
|
|
extra_perms:
|
|
type: object
|
|
additionalProperties:
|
|
type: boolean
|
|
required:
|
|
- name
|
|
|
|
InstanceGroup:
|
|
type: object
|
|
required:
|
|
- name
|
|
properties:
|
|
name:
|
|
type: string
|
|
summary:
|
|
type: string
|
|
emails:
|
|
type: array
|
|
items:
|
|
type: string
|
|
instance_role:
|
|
type: string
|
|
nullable: true
|
|
enum:
|
|
- superadmin
|
|
- devops
|
|
|
|
InstanceGroupWithWorkspaces:
|
|
type: object
|
|
required:
|
|
- name
|
|
properties:
|
|
name:
|
|
type: string
|
|
summary:
|
|
type: string
|
|
emails:
|
|
type: array
|
|
items:
|
|
type: string
|
|
instance_role:
|
|
type: string
|
|
nullable: true
|
|
enum:
|
|
- superadmin
|
|
- devops
|
|
workspaces:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/WorkspaceInfo"
|
|
|
|
WorkspaceInfo:
|
|
type: object
|
|
properties:
|
|
workspace_id:
|
|
type: string
|
|
workspace_name:
|
|
type: string
|
|
role:
|
|
type: string
|
|
required:
|
|
- name
|
|
|
|
Folder:
|
|
type: object
|
|
properties:
|
|
name:
|
|
type: string
|
|
owners:
|
|
type: array
|
|
items:
|
|
type: string
|
|
extra_perms:
|
|
type: object
|
|
additionalProperties:
|
|
type: boolean
|
|
summary:
|
|
type: string
|
|
created_by:
|
|
type: string
|
|
edited_at:
|
|
type: string
|
|
format: date-time
|
|
required:
|
|
- name
|
|
- owners
|
|
- extra_perms
|
|
|
|
WorkerPing:
|
|
type: object
|
|
properties:
|
|
worker:
|
|
type: string
|
|
worker_instance:
|
|
type: string
|
|
last_ping:
|
|
type: number
|
|
started_at:
|
|
type: string
|
|
format: date-time
|
|
ip:
|
|
type: string
|
|
jobs_executed:
|
|
type: integer
|
|
custom_tags:
|
|
type: array
|
|
items:
|
|
type: string
|
|
worker_group:
|
|
type: string
|
|
wm_version:
|
|
type: string
|
|
last_job_id:
|
|
type: string
|
|
last_job_workspace_id:
|
|
type: string
|
|
occupancy_rate:
|
|
type: number
|
|
occupancy_rate_15s:
|
|
type: number
|
|
occupancy_rate_5m:
|
|
type: number
|
|
occupancy_rate_30m:
|
|
type: number
|
|
memory:
|
|
type: number
|
|
vcpus:
|
|
type: number
|
|
memory_usage:
|
|
type: number
|
|
wm_memory_usage:
|
|
type: number
|
|
job_isolation:
|
|
type: string
|
|
native_mode:
|
|
type: boolean
|
|
required:
|
|
- worker
|
|
- worker_instance
|
|
- ping_at
|
|
- started_at
|
|
- ip
|
|
- jobs_executed
|
|
- worker_group
|
|
- wm_version
|
|
UserWorkspaceList:
|
|
type: object
|
|
properties:
|
|
email:
|
|
type: string
|
|
workspaces:
|
|
type: array
|
|
items:
|
|
type: object
|
|
properties:
|
|
id:
|
|
type: string
|
|
name:
|
|
type: string
|
|
username:
|
|
type: string
|
|
color:
|
|
type: string
|
|
operator_settings:
|
|
$ref: "#/components/schemas/OperatorSettings"
|
|
parent_workspace_id:
|
|
type: string
|
|
nullable: true
|
|
created_by:
|
|
type: string
|
|
nullable: true
|
|
disabled:
|
|
type: boolean
|
|
required:
|
|
- id
|
|
- name
|
|
- username
|
|
- color
|
|
- disabled
|
|
required:
|
|
- email
|
|
- workspaces
|
|
|
|
CreateWorkspace:
|
|
type: object
|
|
properties:
|
|
id:
|
|
type: string
|
|
name:
|
|
type: string
|
|
username:
|
|
type: string
|
|
color:
|
|
type: string
|
|
required:
|
|
- id
|
|
- name
|
|
|
|
CreateWorkspaceFork:
|
|
type: object
|
|
properties:
|
|
id:
|
|
type: string
|
|
name:
|
|
type: string
|
|
color:
|
|
type: string
|
|
forked_datatables:
|
|
type: array
|
|
items:
|
|
type: object
|
|
required: [name, new_dbname]
|
|
properties:
|
|
name:
|
|
type: string
|
|
description: "Datatable name"
|
|
new_dbname:
|
|
type: string
|
|
description: "New database name for the fork"
|
|
required:
|
|
- id
|
|
- name
|
|
- parent_workspace_id
|
|
|
|
Workspace:
|
|
type: object
|
|
properties:
|
|
id:
|
|
type: string
|
|
name:
|
|
type: string
|
|
owner:
|
|
type: string
|
|
domain:
|
|
type: string
|
|
color:
|
|
type: string
|
|
parent_workspace_id:
|
|
type: string
|
|
nullable: true
|
|
required:
|
|
- id
|
|
- name
|
|
- owner
|
|
- created_at
|
|
|
|
DependencyMap:
|
|
type: object
|
|
properties:
|
|
workspace_id:
|
|
type: string
|
|
nullable: true
|
|
importer_path:
|
|
type: string
|
|
nullable: true
|
|
importer_kind:
|
|
type: string
|
|
nullable: true
|
|
imported_path:
|
|
type: string
|
|
nullable: true
|
|
importer_node_id:
|
|
type: string
|
|
nullable: true
|
|
|
|
DependencyDependent:
|
|
type: object
|
|
properties:
|
|
importer_path:
|
|
type: string
|
|
importer_kind:
|
|
type: string
|
|
enum:
|
|
- script
|
|
- flow
|
|
- app
|
|
importer_node_ids:
|
|
type: array
|
|
items:
|
|
type: string
|
|
nullable: true
|
|
required:
|
|
- importer_path
|
|
- importer_kind
|
|
|
|
DependentsAmount:
|
|
type: object
|
|
properties:
|
|
imported_path:
|
|
type: string
|
|
count:
|
|
type: integer
|
|
format: int64
|
|
required:
|
|
- imported_path
|
|
- count
|
|
|
|
WorkspaceInvite:
|
|
type: object
|
|
properties:
|
|
workspace_id:
|
|
type: string
|
|
email:
|
|
type: string
|
|
is_admin:
|
|
type: boolean
|
|
operator:
|
|
type: boolean
|
|
parent_workspace_id:
|
|
type: string
|
|
nullable: true
|
|
required:
|
|
- workspace_id
|
|
- email
|
|
- is_admin
|
|
- operator
|
|
|
|
GlobalUserInfo:
|
|
type: object
|
|
properties:
|
|
email:
|
|
type: string
|
|
login_type:
|
|
type: string
|
|
enum: ["password", "github"]
|
|
super_admin:
|
|
type: boolean
|
|
devops:
|
|
type: boolean
|
|
verified:
|
|
type: boolean
|
|
name:
|
|
type: string
|
|
company:
|
|
type: string
|
|
username:
|
|
type: string
|
|
operator_only:
|
|
type: boolean
|
|
first_time_user:
|
|
type: boolean
|
|
role_source:
|
|
type: string
|
|
enum: ["manual", "instance_group"]
|
|
disabled:
|
|
type: boolean
|
|
|
|
required:
|
|
- email
|
|
- login_type
|
|
- super_admin
|
|
- verified
|
|
- first_time_user
|
|
- role_source
|
|
- disabled
|
|
|
|
Flow:
|
|
allOf:
|
|
- $ref: "../../openflow.openapi.yaml#/components/schemas/OpenFlow"
|
|
- $ref: "#/components/schemas/FlowMetadata"
|
|
- type: object
|
|
properties:
|
|
lock_error_logs:
|
|
type: string
|
|
version_id:
|
|
type: number
|
|
|
|
ExtraPerms:
|
|
type: object
|
|
additionalProperties:
|
|
type: boolean
|
|
|
|
FlowMetadata:
|
|
type: object
|
|
properties:
|
|
workspace_id:
|
|
type: string
|
|
path:
|
|
type: string
|
|
edited_by:
|
|
type: string
|
|
edited_at:
|
|
type: string
|
|
format: date-time
|
|
archived:
|
|
type: boolean
|
|
extra_perms:
|
|
$ref: "#/components/schemas/ExtraPerms"
|
|
starred:
|
|
type: boolean
|
|
draft_only:
|
|
type: boolean
|
|
tag:
|
|
type: string
|
|
ws_error_handler_muted:
|
|
type: boolean
|
|
priority:
|
|
type: integer
|
|
dedicated_worker:
|
|
type: boolean
|
|
timeout:
|
|
type: number
|
|
visible_to_runner_only:
|
|
type: boolean
|
|
on_behalf_of_email:
|
|
type: string
|
|
labels:
|
|
type: array
|
|
items:
|
|
type: string
|
|
default: []
|
|
required:
|
|
- path
|
|
- edited_by
|
|
- edited_at
|
|
- archived
|
|
- extra_perms
|
|
|
|
|
|
OpenFlowWPath:
|
|
allOf:
|
|
- $ref: "../../openflow.openapi.yaml#/components/schemas/OpenFlow"
|
|
- type: object
|
|
properties:
|
|
path:
|
|
type: string
|
|
tag:
|
|
type: string
|
|
ws_error_handler_muted:
|
|
type: boolean
|
|
priority:
|
|
type: integer
|
|
dedicated_worker:
|
|
type: boolean
|
|
timeout:
|
|
type: number
|
|
visible_to_runner_only:
|
|
type: boolean
|
|
on_behalf_of_email:
|
|
type: string
|
|
preserve_on_behalf_of:
|
|
type: boolean
|
|
description: "When true and the caller is a member of the 'wm_deployers' group, preserves the original on_behalf_of_email value instead of overwriting it."
|
|
labels:
|
|
type: array
|
|
items:
|
|
type: string
|
|
required:
|
|
- path
|
|
|
|
FlowPreview:
|
|
type: object
|
|
properties:
|
|
value:
|
|
$ref: "../../openflow.openapi.yaml#/components/schemas/FlowValue"
|
|
path:
|
|
type: string
|
|
args:
|
|
$ref: "#/components/schemas/ScriptArgs"
|
|
tag:
|
|
type: string
|
|
restarted_from:
|
|
$ref: "#/components/schemas/RestartedFrom"
|
|
|
|
required:
|
|
- value
|
|
- content
|
|
- args
|
|
|
|
RestartedFrom:
|
|
type: object
|
|
properties:
|
|
flow_job_id:
|
|
type: string
|
|
format: uuid
|
|
step_id:
|
|
type: string
|
|
branch_or_iteration_n:
|
|
type: integer
|
|
flow_version:
|
|
type: integer
|
|
|
|
Policy:
|
|
type: object
|
|
properties:
|
|
triggerables:
|
|
type: object
|
|
additionalProperties:
|
|
type: object
|
|
triggerables_v2:
|
|
type: object
|
|
additionalProperties:
|
|
type: object
|
|
s3_inputs:
|
|
type: array
|
|
items:
|
|
type: object
|
|
allowed_s3_keys:
|
|
type: array
|
|
items:
|
|
type: object
|
|
properties:
|
|
s3_path:
|
|
type: string
|
|
resource:
|
|
type: string
|
|
execution_mode:
|
|
type: string
|
|
enum: [viewer, publisher, anonymous]
|
|
on_behalf_of:
|
|
type: string
|
|
on_behalf_of_email:
|
|
type: string
|
|
|
|
ListableApp:
|
|
type: object
|
|
properties:
|
|
id:
|
|
type: integer
|
|
workspace_id:
|
|
type: string
|
|
path:
|
|
type: string
|
|
summary:
|
|
type: string
|
|
version:
|
|
type: integer
|
|
extra_perms:
|
|
type: object
|
|
additionalProperties:
|
|
type: boolean
|
|
starred:
|
|
type: boolean
|
|
edited_at:
|
|
type: string
|
|
format: date-time
|
|
execution_mode:
|
|
type: string
|
|
enum: [viewer, publisher, anonymous]
|
|
raw_app:
|
|
type: boolean
|
|
labels:
|
|
type: array
|
|
items:
|
|
type: string
|
|
default: []
|
|
required:
|
|
- id
|
|
- workspace_id
|
|
- path
|
|
- summary
|
|
- version
|
|
- extra_perms
|
|
- edited_at
|
|
- execution_mode
|
|
|
|
|
|
ScopeDefinition:
|
|
type: object
|
|
properties:
|
|
value:
|
|
type: string
|
|
label:
|
|
type: string
|
|
description:
|
|
type: string
|
|
nullable: true
|
|
requires_resource_path:
|
|
type: boolean
|
|
required:
|
|
- value
|
|
- label
|
|
- requires_resource_path
|
|
|
|
ScopeDomain:
|
|
type: object
|
|
properties:
|
|
name:
|
|
type: string
|
|
description:
|
|
type: string
|
|
nullable: true
|
|
scopes:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/ScopeDefinition"
|
|
required:
|
|
- name
|
|
- scopes
|
|
|
|
ListableRawApp:
|
|
type: object
|
|
properties:
|
|
workspace_id:
|
|
type: string
|
|
path:
|
|
type: string
|
|
summary:
|
|
type: string
|
|
extra_perms:
|
|
type: object
|
|
additionalProperties:
|
|
type: boolean
|
|
starred:
|
|
type: boolean
|
|
version:
|
|
type: number
|
|
edited_at:
|
|
type: string
|
|
format: date-time
|
|
labels:
|
|
type: array
|
|
items:
|
|
type: string
|
|
default: []
|
|
required:
|
|
- workspace_id
|
|
- path
|
|
- summary
|
|
- extra_perms
|
|
- version
|
|
- edited_at
|
|
|
|
|
|
AppWithLastVersion:
|
|
type: object
|
|
properties:
|
|
id:
|
|
type: integer
|
|
workspace_id:
|
|
type: string
|
|
path:
|
|
type: string
|
|
summary:
|
|
type: string
|
|
versions:
|
|
type: array
|
|
items:
|
|
type: integer
|
|
created_by:
|
|
type: string
|
|
created_at:
|
|
type: string
|
|
format: date-time
|
|
value: {}
|
|
policy:
|
|
$ref: "#/components/schemas/Policy"
|
|
execution_mode:
|
|
type: string
|
|
enum: [viewer, publisher, anonymous]
|
|
extra_perms:
|
|
type: object
|
|
additionalProperties:
|
|
type: boolean
|
|
custom_path:
|
|
type: string
|
|
raw_app:
|
|
type: boolean
|
|
bundle_secret:
|
|
type: string
|
|
labels:
|
|
type: array
|
|
items:
|
|
type: string
|
|
default: []
|
|
required:
|
|
- id
|
|
- workspace_id
|
|
- path
|
|
- summary
|
|
- versions
|
|
- created_by
|
|
- created_at
|
|
- value
|
|
- policy
|
|
- execution_mode
|
|
- extra_perms
|
|
- raw_app
|
|
|
|
|
|
AppWithLastVersionWDraft:
|
|
allOf:
|
|
- $ref: "#/components/schemas/AppWithLastVersion"
|
|
- type: object
|
|
properties:
|
|
draft_only:
|
|
type: boolean
|
|
draft: {}
|
|
|
|
AppHistory:
|
|
type: object
|
|
properties:
|
|
version:
|
|
type: integer
|
|
deployment_msg:
|
|
type: string
|
|
required:
|
|
- version
|
|
|
|
FlowVersion:
|
|
type: object
|
|
properties:
|
|
id:
|
|
type: integer
|
|
created_at:
|
|
type: string
|
|
format: date-time
|
|
deployment_msg:
|
|
type: string
|
|
required:
|
|
- id
|
|
- created_at
|
|
|
|
SlackToken:
|
|
type: object
|
|
properties:
|
|
access_token:
|
|
type: string
|
|
team_id:
|
|
type: string
|
|
team_name:
|
|
type: string
|
|
bot:
|
|
type: object
|
|
properties:
|
|
bot_access_token:
|
|
type: string
|
|
required:
|
|
- access_token
|
|
- team_id
|
|
- team_name
|
|
- bot
|
|
|
|
TokenResponse:
|
|
type: object
|
|
properties:
|
|
access_token:
|
|
type: string
|
|
expires_in:
|
|
type: integer
|
|
refresh_token:
|
|
type: string
|
|
scope:
|
|
type: array
|
|
items:
|
|
type: string
|
|
grant_type:
|
|
type: string
|
|
|
|
required:
|
|
- access_token
|
|
|
|
HubScriptKind:
|
|
type: string
|
|
enum: [script, failure, trigger, approval]
|
|
|
|
PolarsClientKwargs:
|
|
type: object
|
|
properties:
|
|
region_name:
|
|
type: string
|
|
required:
|
|
- region_name
|
|
|
|
LargeFileStorage:
|
|
type: object
|
|
properties:
|
|
type:
|
|
type: string
|
|
enum:
|
|
[
|
|
"S3Storage",
|
|
"AzureBlobStorage",
|
|
"AzureWorkloadIdentity",
|
|
"S3AwsOidc",
|
|
"GoogleCloudStorage",
|
|
]
|
|
s3_resource_path:
|
|
type: string
|
|
azure_blob_resource_path:
|
|
type: string
|
|
gcs_resource_path:
|
|
type: string
|
|
public_resource:
|
|
type: boolean
|
|
advanced_permissions:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/S3PermissionRule"
|
|
secondary_storage:
|
|
type: object
|
|
additionalProperties:
|
|
type: object
|
|
properties:
|
|
type:
|
|
type: string
|
|
enum:
|
|
[
|
|
"S3Storage",
|
|
"AzureBlobStorage",
|
|
"AzureWorkloadIdentity",
|
|
"S3AwsOidc",
|
|
"GoogleCloudStorage",
|
|
]
|
|
s3_resource_path:
|
|
type: string
|
|
azure_blob_resource_path:
|
|
type: string
|
|
gcs_resource_path:
|
|
type: string
|
|
public_resource:
|
|
type: boolean
|
|
|
|
DucklakeSettings:
|
|
type: object
|
|
required: [ducklakes]
|
|
properties:
|
|
ducklakes:
|
|
type: object
|
|
additionalProperties:
|
|
type: object
|
|
required: [catalog, storage]
|
|
properties:
|
|
catalog:
|
|
type: object
|
|
properties:
|
|
resource_type:
|
|
type: string
|
|
enum:
|
|
- postgresql
|
|
- mysql
|
|
- instance
|
|
resource_path:
|
|
type: string
|
|
required:
|
|
- resource_type
|
|
storage:
|
|
type: object
|
|
properties:
|
|
storage:
|
|
type: string
|
|
path:
|
|
type: string
|
|
required:
|
|
- path
|
|
extra_args:
|
|
type: string
|
|
|
|
DataTableSettings:
|
|
type: object
|
|
required: [datatables]
|
|
properties:
|
|
datatables:
|
|
type: object
|
|
additionalProperties:
|
|
type: object
|
|
required: [database]
|
|
properties:
|
|
database:
|
|
type: object
|
|
properties:
|
|
resource_type:
|
|
type: string
|
|
enum:
|
|
- postgresql
|
|
- instance
|
|
resource_path:
|
|
type: string
|
|
required:
|
|
- resource_type
|
|
forked_from:
|
|
type: object
|
|
description: Fork origin info with schema snapshot
|
|
properties:
|
|
schema:
|
|
type: object
|
|
description: Schema snapshot at fork time
|
|
additionalProperties: true
|
|
DataTableSchema:
|
|
type: object
|
|
required: [datatable_name, schemas]
|
|
properties:
|
|
datatable_name:
|
|
type: string
|
|
schemas:
|
|
type: object
|
|
description: "Hierarchical schema: schema_name -> table_name -> column_name -> compact_type (e.g. 'int4', 'text?', 'int4?=0')"
|
|
additionalProperties:
|
|
type: object
|
|
description: "Tables in this schema"
|
|
additionalProperties:
|
|
type: object
|
|
description: "Columns in this table"
|
|
additionalProperties:
|
|
type: string
|
|
description: "Compact type: 'type[?][=default]' where ? means nullable"
|
|
error:
|
|
type: string
|
|
|
|
DynamicInputData:
|
|
type: object
|
|
properties:
|
|
entrypoint_function:
|
|
type: string
|
|
description: Name of the function to execute for dynamic select
|
|
args:
|
|
type: object
|
|
description: Arguments to pass to the function
|
|
runnable_ref:
|
|
type: object
|
|
oneOf:
|
|
- type: object
|
|
properties:
|
|
source:
|
|
type: string
|
|
enum: [deployed]
|
|
path:
|
|
type: string
|
|
description: Path to the deployed script or flow
|
|
runnable_kind:
|
|
$ref: "#/components/schemas/RunnableKind"
|
|
required:
|
|
- source
|
|
- path
|
|
- runnable_kind
|
|
- type: object
|
|
properties:
|
|
source:
|
|
type: string
|
|
enum: [inline]
|
|
code:
|
|
type: string
|
|
description: Code content for inline execution
|
|
language:
|
|
$ref: "#/components/schemas/ScriptLang"
|
|
required:
|
|
- source
|
|
- code
|
|
required:
|
|
- entrypoint_function
|
|
- runnable_ref
|
|
|
|
WindmillLargeFile:
|
|
type: object
|
|
properties:
|
|
s3:
|
|
type: string
|
|
required:
|
|
- s3
|
|
|
|
WindmillFileMetadata:
|
|
type: object
|
|
properties:
|
|
mime_type:
|
|
type: string
|
|
size_in_bytes:
|
|
type: integer
|
|
last_modified:
|
|
type: string
|
|
format: date-time
|
|
expires:
|
|
type: string
|
|
format: date-time
|
|
version_id:
|
|
type: string
|
|
|
|
WindmillFilePreview:
|
|
type: object
|
|
properties:
|
|
msg:
|
|
type: string
|
|
content:
|
|
type: string
|
|
content_type:
|
|
type: string
|
|
enum: ["RawText", "Csv", "Parquet", "Unknown"]
|
|
required:
|
|
- content_type
|
|
|
|
S3Resource:
|
|
type: object
|
|
properties:
|
|
bucket:
|
|
type: string
|
|
region:
|
|
type: string
|
|
endPoint:
|
|
type: string
|
|
useSSL:
|
|
type: boolean
|
|
accessKey:
|
|
type: string
|
|
secretKey:
|
|
type: string
|
|
pathStyle:
|
|
type: boolean
|
|
required:
|
|
- bucket
|
|
- region
|
|
- endPoint
|
|
- useSSL
|
|
- pathStyle
|
|
|
|
WorkspaceGitSyncSettings:
|
|
type: object
|
|
properties:
|
|
repositories:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/GitRepositorySettings"
|
|
|
|
WorkspaceDeployUISettings:
|
|
type: object
|
|
properties:
|
|
include_path:
|
|
type: array
|
|
items:
|
|
type: string
|
|
include_type:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/GitSyncObjectType"
|
|
|
|
WorkspaceDefaultScripts:
|
|
type: object
|
|
properties:
|
|
order:
|
|
type: array
|
|
items:
|
|
type: string
|
|
hidden:
|
|
type: array
|
|
items:
|
|
type: string
|
|
default_script_content:
|
|
additionalProperties:
|
|
type: string
|
|
|
|
S3PermissionRule:
|
|
type: object
|
|
properties:
|
|
pattern:
|
|
type: string
|
|
allow:
|
|
type: string # comma separated permissions : "read,write,delete,list"
|
|
required: ["pattern", "allow"]
|
|
|
|
GitRepositorySettings:
|
|
type: object
|
|
properties:
|
|
script_path:
|
|
type: string
|
|
git_repo_resource_path:
|
|
type: string
|
|
use_individual_branch:
|
|
type: boolean
|
|
group_by_folder:
|
|
type: boolean
|
|
force_branch:
|
|
type: string
|
|
collapsed:
|
|
type: boolean
|
|
settings:
|
|
type: object
|
|
properties:
|
|
include_path:
|
|
type: array
|
|
items:
|
|
type: string
|
|
include_type:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/GitSyncObjectType"
|
|
exclude_path:
|
|
type: array
|
|
items:
|
|
type: string
|
|
extra_include_path:
|
|
type: array
|
|
items:
|
|
type: string
|
|
exclude_types_override:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/GitSyncObjectType"
|
|
required:
|
|
- git_repo_resource_path
|
|
|
|
MetricMetadata:
|
|
type: object
|
|
properties:
|
|
id:
|
|
type: string
|
|
name:
|
|
type: string
|
|
required:
|
|
- id
|
|
|
|
ScalarMetric:
|
|
type: object
|
|
properties:
|
|
metric_id:
|
|
type: string
|
|
value:
|
|
type: number
|
|
required:
|
|
- id
|
|
- value
|
|
|
|
TimeseriesMetric:
|
|
type: object
|
|
properties:
|
|
metric_id:
|
|
type: string
|
|
values:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/MetricDataPoint"
|
|
required:
|
|
- id
|
|
- values
|
|
|
|
MetricDataPoint:
|
|
type: object
|
|
properties:
|
|
timestamp:
|
|
type: string
|
|
format: date-time
|
|
value:
|
|
type: number
|
|
required:
|
|
- timestamp
|
|
- value
|
|
|
|
RawScriptForDependencies:
|
|
type: object
|
|
properties:
|
|
raw_code:
|
|
type: string
|
|
path:
|
|
type: string
|
|
language:
|
|
$ref: "#/components/schemas/ScriptLang"
|
|
required:
|
|
- raw_code
|
|
- path
|
|
- language
|
|
|
|
ConcurrencyGroup:
|
|
type: object
|
|
properties:
|
|
concurrency_key:
|
|
type: string
|
|
total_running:
|
|
type: number
|
|
required:
|
|
- concurrency_key
|
|
- total_running
|
|
|
|
ExtendedJobs:
|
|
type: object
|
|
properties:
|
|
jobs:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/Job"
|
|
obscured_jobs:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/ObscuredJob"
|
|
omitted_obscured_jobs:
|
|
description: "Obscured jobs omitted for security because of too specific filtering"
|
|
type: boolean
|
|
required:
|
|
- jobs
|
|
- obscured_jobs
|
|
|
|
ExportedUser:
|
|
type: object
|
|
properties:
|
|
email:
|
|
type: string
|
|
password_hash:
|
|
type: string
|
|
super_admin:
|
|
type: boolean
|
|
verified:
|
|
type: boolean
|
|
name:
|
|
type: string
|
|
company:
|
|
type: string
|
|
first_time_user:
|
|
type: boolean
|
|
username:
|
|
type: string
|
|
required:
|
|
- email
|
|
- super_admin
|
|
- verified
|
|
- first_time_user
|
|
|
|
GlobalSetting:
|
|
type: object
|
|
properties:
|
|
name:
|
|
type: string
|
|
value: {}
|
|
required:
|
|
- name
|
|
- value
|
|
|
|
InstanceConfig:
|
|
type: object
|
|
description: Unified instance configuration combining global settings and worker group configs
|
|
properties:
|
|
global_settings:
|
|
type: object
|
|
description: >
|
|
Global settings keyed by setting name. Known fields include base_url,
|
|
license_key, retention_period_secs, smtp_settings, otel, etc.
|
|
Unknown fields are preserved as-is.
|
|
additionalProperties: true
|
|
worker_configs:
|
|
type: object
|
|
description: >
|
|
Worker group configurations keyed by group name (e.g. "default", "gpu").
|
|
Each value contains worker_tags, init_bash, autoscaling, etc.
|
|
additionalProperties:
|
|
type: object
|
|
additionalProperties: true
|
|
|
|
Config:
|
|
type: object
|
|
properties:
|
|
name:
|
|
type: string
|
|
config:
|
|
type: object
|
|
required:
|
|
- name
|
|
|
|
ExportedInstanceGroup:
|
|
type: object
|
|
properties:
|
|
name:
|
|
type: string
|
|
summary:
|
|
type: string
|
|
emails:
|
|
type: array
|
|
items:
|
|
type: string
|
|
id:
|
|
type: string
|
|
scim_display_name:
|
|
type: string
|
|
external_id:
|
|
type: string
|
|
instance_role:
|
|
type: string
|
|
nullable: true
|
|
enum:
|
|
- superadmin
|
|
- devops
|
|
required:
|
|
- name
|
|
|
|
JobSearchHit:
|
|
type: object
|
|
properties:
|
|
dancer:
|
|
type: string
|
|
|
|
LogSearchHit:
|
|
type: object
|
|
properties:
|
|
dancer:
|
|
type: string
|
|
|
|
AutoscalingEvent:
|
|
type: object
|
|
properties:
|
|
id:
|
|
type: integer
|
|
format: int64
|
|
worker_group:
|
|
type: string
|
|
event_type:
|
|
type: string
|
|
desired_workers:
|
|
type: integer
|
|
reason:
|
|
type: string
|
|
applied_at:
|
|
type: string
|
|
format: date-time
|
|
|
|
CriticalAlert:
|
|
type: object
|
|
properties:
|
|
id:
|
|
type: integer
|
|
description: Unique identifier for the alert
|
|
alert_type:
|
|
type: string
|
|
description: Type of alert (e.g., critical_error)
|
|
message:
|
|
type: string
|
|
description: The message content of the alert
|
|
created_at:
|
|
type: string
|
|
format: date-time
|
|
description: Time when the alert was created
|
|
acknowledged:
|
|
type: boolean
|
|
nullable: true
|
|
description: Acknowledgment status of the alert, can be true, false, or null if not set
|
|
workspace_id:
|
|
type: string
|
|
nullable: true
|
|
description: Workspace id if the alert is in the scope of a workspace
|
|
|
|
CaptureTriggerKind:
|
|
type: string
|
|
enum:
|
|
[
|
|
webhook,
|
|
http,
|
|
websocket,
|
|
kafka,
|
|
default_email,
|
|
nats,
|
|
postgres,
|
|
sqs,
|
|
mqtt,
|
|
gcp,
|
|
email,
|
|
]
|
|
|
|
Capture:
|
|
type: object
|
|
properties:
|
|
trigger_kind:
|
|
$ref: "#/components/schemas/CaptureTriggerKind"
|
|
main_args: {}
|
|
preprocessor_args: {}
|
|
id:
|
|
type: integer
|
|
created_at:
|
|
type: string
|
|
format: date-time
|
|
required:
|
|
- trigger_kind
|
|
- main_args
|
|
- preprocessor_args
|
|
- id
|
|
- created_at
|
|
CaptureConfig:
|
|
type: object
|
|
properties:
|
|
trigger_config: {}
|
|
trigger_kind:
|
|
$ref: "#/components/schemas/CaptureTriggerKind"
|
|
error:
|
|
type: string
|
|
last_server_ping:
|
|
type: string
|
|
format: date-time
|
|
required:
|
|
- trigger_kind
|
|
|
|
OperatorSettings:
|
|
nullable: true
|
|
type: object
|
|
required:
|
|
- runs
|
|
- schedules
|
|
- resources
|
|
- assets
|
|
- variables
|
|
- triggers
|
|
- audit_logs
|
|
- groups
|
|
- folders
|
|
- workers
|
|
properties:
|
|
runs:
|
|
type: boolean
|
|
description: Whether operators can view runs
|
|
schedules:
|
|
type: boolean
|
|
description: Whether operators can view schedules
|
|
resources:
|
|
type: boolean
|
|
description: Whether operators can view resources
|
|
variables:
|
|
type: boolean
|
|
description: Whether operators can view variables
|
|
assets:
|
|
type: boolean
|
|
description: Whether operators can view assets
|
|
audit_logs:
|
|
type: boolean
|
|
description: Whether operators can view audit logs
|
|
triggers:
|
|
type: boolean
|
|
description: Whether operators can view triggers
|
|
groups:
|
|
type: boolean
|
|
description: Whether operators can view groups page
|
|
folders:
|
|
type: boolean
|
|
description: Whether operators can view folders page
|
|
workers:
|
|
type: boolean
|
|
description: Whether operators can view workers page
|
|
|
|
WorkspaceComparison:
|
|
type: object
|
|
required:
|
|
- all_ahead_items_visible
|
|
- all_behind_items_visible
|
|
- skipped_comparison
|
|
- diffs
|
|
- summary
|
|
properties:
|
|
all_ahead_items_visible:
|
|
type: boolean
|
|
description: All items with changes ahead are visible by the user of the request.
|
|
all_behind_items_visible:
|
|
type: boolean
|
|
description: All items with changes behind are visible by the user of the request.
|
|
skipped_comparison:
|
|
type: boolean
|
|
description: Whether the comparison was skipped. This happens with old forks that where not being kept track of
|
|
diffs:
|
|
type: array
|
|
description: List of differences found between workspaces
|
|
items:
|
|
$ref: "#/components/schemas/WorkspaceItemDiff"
|
|
summary:
|
|
$ref: "#/components/schemas/CompareSummary"
|
|
description: Summary statistics of the comparison
|
|
|
|
WorkspaceItemDiff:
|
|
type: object
|
|
required:
|
|
- kind
|
|
- path
|
|
- ahead
|
|
- behind
|
|
- has_changes
|
|
- exists_in_source
|
|
- exists_in_fork
|
|
properties:
|
|
kind:
|
|
type: string
|
|
enum:
|
|
[
|
|
"script",
|
|
"flow",
|
|
"app",
|
|
"raw_app",
|
|
"resource",
|
|
"variable",
|
|
"resource_type",
|
|
]
|
|
description: Type of the item
|
|
path:
|
|
type: string
|
|
description: Path of the item in the workspace
|
|
ahead:
|
|
type: integer
|
|
description: Number of versions source is ahead of target
|
|
behind:
|
|
type: integer
|
|
description: Number of versions source is behind target
|
|
has_changes:
|
|
type: boolean
|
|
description: Whether the item has any differences
|
|
exists_in_source:
|
|
type: boolean
|
|
description: If the item exists in the source workspace
|
|
exists_in_fork:
|
|
type: boolean
|
|
description: If the item exists in the fork workspace
|
|
|
|
CompareSummary:
|
|
type: object
|
|
required:
|
|
- total_diffs
|
|
- total_ahead
|
|
- total_behind
|
|
- scripts_changed
|
|
- flows_changed
|
|
- apps_changed
|
|
- resources_changed
|
|
- variables_changed
|
|
- resource_types_changed
|
|
- folders_changed
|
|
- conflicts
|
|
properties:
|
|
total_diffs:
|
|
type: integer
|
|
description: Total number of items with differences
|
|
total_ahead:
|
|
type: integer
|
|
description: Total number of ahead changes
|
|
total_behind:
|
|
type: integer
|
|
description: Total number of behind changes
|
|
scripts_changed:
|
|
type: integer
|
|
description: Number of scripts with differences
|
|
flows_changed:
|
|
type: integer
|
|
description: Number of flows with differences
|
|
apps_changed:
|
|
type: integer
|
|
description: Number of apps with differences
|
|
resources_changed:
|
|
type: integer
|
|
description: Number of resources with differences
|
|
variables_changed:
|
|
type: integer
|
|
description: Number of variables with differences
|
|
resource_types_changed:
|
|
type: integer
|
|
description: Number of resource types with differences
|
|
folders_changed:
|
|
type: integer
|
|
description: Number of folders with differences
|
|
conflicts:
|
|
type: integer
|
|
description: Number of items that are both ahead and behind (conflicts)
|
|
|
|
TeamInfo:
|
|
type: object
|
|
required:
|
|
- team_id
|
|
- team_name
|
|
- channels
|
|
properties:
|
|
team_id:
|
|
type: string
|
|
description: The unique identifier of the Microsoft Teams team
|
|
example: "19:abc123def456@thread.tacv2"
|
|
team_name:
|
|
type: string
|
|
description: The display name of the Microsoft Teams team
|
|
example: "Engineering Team"
|
|
channels:
|
|
type: array
|
|
description: List of channels within the team
|
|
items:
|
|
$ref: "#/components/schemas/ChannelInfo"
|
|
|
|
ChannelInfo:
|
|
type: object
|
|
required:
|
|
- channel_id
|
|
- channel_name
|
|
- tenant_id
|
|
- service_url
|
|
properties:
|
|
channel_id:
|
|
type: string
|
|
description: The unique identifier of the channel
|
|
example: "19:channel123@thread.tacv2"
|
|
channel_name:
|
|
type: string
|
|
description: The display name of the channel
|
|
example: "General"
|
|
tenant_id:
|
|
type: string
|
|
description: The Microsoft Teams tenant identifier
|
|
example: "12345678-1234-1234-1234-123456789012"
|
|
service_url:
|
|
type: string
|
|
description: The service URL for the channel
|
|
example: "https://smba.trafficmanager.net/amer/12345678-1234-1234-1234-123456789012/"
|
|
|
|
GithubInstallations:
|
|
type: array
|
|
items:
|
|
type: object
|
|
properties:
|
|
workspace_id:
|
|
type: string
|
|
installation_id:
|
|
type: number
|
|
account_id:
|
|
type: string
|
|
repositories:
|
|
type: array
|
|
items:
|
|
type: object
|
|
properties:
|
|
name:
|
|
type: string
|
|
url:
|
|
type: string
|
|
required:
|
|
- name
|
|
- url
|
|
total_count:
|
|
type: number
|
|
description: Total number of repositories available for this installation
|
|
per_page:
|
|
type: number
|
|
description: Number of repositories loaded per page
|
|
error:
|
|
type: string
|
|
description: Error message if token retrieval failed
|
|
required:
|
|
- installation_id
|
|
- account_id
|
|
- repositories
|
|
- total_count
|
|
- per_page
|
|
|
|
WorkspaceGithubInstallation:
|
|
type: object
|
|
properties:
|
|
account_id:
|
|
type: string
|
|
installation_id:
|
|
type: number
|
|
required:
|
|
- account_id
|
|
- installation_id
|
|
|
|
S3Object:
|
|
type: object
|
|
properties:
|
|
s3:
|
|
type: string
|
|
filename:
|
|
type: string
|
|
storage:
|
|
type: string
|
|
presigned:
|
|
type: string
|
|
required:
|
|
- s3
|
|
TeamsChannel:
|
|
type: object
|
|
required:
|
|
- team_id
|
|
- team_name
|
|
- channel_id
|
|
- channel_name
|
|
properties:
|
|
team_id:
|
|
type: string
|
|
description: Microsoft Teams team ID
|
|
minLength: 1
|
|
team_name:
|
|
type: string
|
|
description: Microsoft Teams team name
|
|
minLength: 1
|
|
channel_id:
|
|
type: string
|
|
description: Microsoft Teams channel ID
|
|
minLength: 1
|
|
channel_name:
|
|
type: string
|
|
description: Microsoft Teams channel name
|
|
minLength: 1
|
|
AssetUsageKind:
|
|
type: string
|
|
enum:
|
|
- script
|
|
- flow
|
|
- job
|
|
AssetUsageAccessType:
|
|
type: string
|
|
enum: [r, w, rw]
|
|
nullable: true
|
|
AssetKind:
|
|
type: string
|
|
enum:
|
|
- s3object
|
|
- resource
|
|
- ducklake
|
|
- datatable
|
|
- volume
|
|
Asset:
|
|
type: object
|
|
properties:
|
|
path:
|
|
type: string
|
|
kind:
|
|
$ref: "#/components/schemas/AssetKind"
|
|
required: [path, kind]
|
|
Volume:
|
|
type: object
|
|
required:
|
|
- name
|
|
- size_bytes
|
|
- file_count
|
|
- created_at
|
|
- created_by
|
|
properties:
|
|
name:
|
|
type: string
|
|
size_bytes:
|
|
type: integer
|
|
format: int64
|
|
file_count:
|
|
type: integer
|
|
created_at:
|
|
type: string
|
|
format: date-time
|
|
created_by:
|
|
type: string
|
|
updated_at:
|
|
type: string
|
|
format: date-time
|
|
nullable: true
|
|
last_used_at:
|
|
type: string
|
|
format: date-time
|
|
nullable: true
|
|
extra_perms:
|
|
type: object
|
|
additionalProperties: true
|
|
ProtectionRuleset:
|
|
type: object
|
|
description: A workspace protection rule defining restrictions and bypass permissions
|
|
required:
|
|
- name
|
|
- rules
|
|
- bypass_groups
|
|
- bypass_users
|
|
properties:
|
|
name:
|
|
type: string
|
|
description: Unique name for the protection rule
|
|
example: "Production Protection"
|
|
workspace_id:
|
|
type: string
|
|
rules:
|
|
$ref: "#/components/schemas/ProtectionRules"
|
|
bypass_groups:
|
|
$ref: "#/components/schemas/RuleBypasserGroups"
|
|
bypass_users:
|
|
$ref: "#/components/schemas/RuleBypasserUsers"
|
|
ProtectionRules:
|
|
type: array
|
|
description: Configuration of protection restrictions
|
|
items:
|
|
$ref: "#/components/schemas/ProtectionRuleKind"
|
|
ProtectionRuleKind:
|
|
type: string
|
|
enum:
|
|
- DisableDirectDeployment
|
|
- DisableWorkspaceForking
|
|
RuleBypasserGroups:
|
|
type: array
|
|
description: Groups that can bypass this ruleset
|
|
items:
|
|
type: string
|
|
RuleBypasserUsers:
|
|
type: array
|
|
description: Users that can bypass this ruleset
|
|
items:
|
|
type: string
|
|
QuotaInfo:
|
|
type: object
|
|
properties:
|
|
used:
|
|
type: integer
|
|
limit:
|
|
type: integer
|
|
prunable:
|
|
type: integer
|
|
required:
|
|
- used
|
|
- limit
|
|
- prunable
|
|
NativeServiceName:
|
|
type: string
|
|
enum:
|
|
- nextcloud
|
|
- google
|
|
|
|
NativeTrigger:
|
|
type: object
|
|
description: A native trigger stored in Windmill
|
|
properties:
|
|
external_id:
|
|
type: string
|
|
description: The unique identifier from the external service
|
|
workspace_id:
|
|
type: string
|
|
description: The workspace this trigger belongs to
|
|
service_name:
|
|
$ref: "#/components/schemas/NativeServiceName"
|
|
script_path:
|
|
type: string
|
|
description: The path to the script or flow that will be triggered
|
|
is_flow:
|
|
type: boolean
|
|
description: Whether the trigger targets a flow (true) or a script (false)
|
|
service_config:
|
|
type: object
|
|
description: Configuration for the trigger including event_type and service_config
|
|
additionalProperties: true
|
|
error:
|
|
type: string
|
|
nullable: true
|
|
description: Error message if the trigger is in an error state
|
|
summary:
|
|
type: string
|
|
nullable: true
|
|
description: Short summary to be displayed when listed
|
|
required:
|
|
- external_id
|
|
- workspace_id
|
|
- service_name
|
|
- script_path
|
|
- is_flow
|
|
- service_config
|
|
|
|
NativeTriggerWithExternal:
|
|
type: object
|
|
description: Full trigger response containing both Windmill data and external service data
|
|
properties:
|
|
external_id:
|
|
type: string
|
|
description: The unique identifier from the external service
|
|
workspace_id:
|
|
type: string
|
|
description: The workspace this trigger belongs to
|
|
service_name:
|
|
$ref: "#/components/schemas/NativeServiceName"
|
|
script_path:
|
|
type: string
|
|
description: The path to the script or flow that will be triggered
|
|
is_flow:
|
|
type: boolean
|
|
description: Whether the trigger targets a flow (true) or a script (false)
|
|
service_config:
|
|
type: object
|
|
description: Configuration for the trigger including event_type and service_config
|
|
additionalProperties: true
|
|
error:
|
|
type: string
|
|
nullable: true
|
|
description: Error message if the trigger is in an error state
|
|
summary:
|
|
type: string
|
|
nullable: true
|
|
description: Short summary to be displayed when listed
|
|
external_data:
|
|
type: object
|
|
description: Configuration data from the external service
|
|
additionalProperties: true
|
|
required:
|
|
- external_id
|
|
- workspace_id
|
|
- service_name
|
|
- script_path
|
|
- is_flow
|
|
- service_config
|
|
- external_data
|
|
|
|
WorkspaceIntegrations:
|
|
type: object
|
|
properties:
|
|
service_name:
|
|
$ref: "#/components/schemas/NativeServiceName"
|
|
oauth_data:
|
|
nullable: true
|
|
$ref: "#/components/schemas/WorkspaceOAuthConfig"
|
|
resource_path:
|
|
type: string
|
|
nullable: true
|
|
description: Path to the resource storing the OAuth token
|
|
required:
|
|
- service_name
|
|
|
|
WorkspaceOAuthConfig:
|
|
type: object
|
|
properties:
|
|
client_id:
|
|
type: string
|
|
description: The OAuth client ID for the workspace
|
|
client_secret:
|
|
type: string
|
|
description: The OAuth client secret for the workspace
|
|
base_url:
|
|
type: string
|
|
format: uri
|
|
description: The base URL of the workspace
|
|
redirect_uri:
|
|
type: string
|
|
format: uri
|
|
description: The OAuth redirect URI
|
|
required:
|
|
- client_id
|
|
- client_secret
|
|
- base_url
|
|
- redirect_uri
|
|
|
|
WebhookEvent:
|
|
type: object
|
|
properties:
|
|
type:
|
|
type: string
|
|
enum: [webhook]
|
|
request_type:
|
|
$ref: "#/components/schemas/WebhookRequestType"
|
|
required:
|
|
- type
|
|
- request_type
|
|
|
|
WebhookRequestType:
|
|
type: string
|
|
description: The type of webhook request (define possible values here)
|
|
enum:
|
|
- async
|
|
- sync
|
|
|
|
RedirectUri:
|
|
type: object
|
|
properties:
|
|
redirect_uri:
|
|
type: string
|
|
required:
|
|
- redirect_uri
|
|
|
|
NativeTriggerData:
|
|
type: object
|
|
description: Data for creating or updating a native trigger
|
|
properties:
|
|
script_path:
|
|
type: string
|
|
description: The path to the script or flow that will be triggered
|
|
is_flow:
|
|
type: boolean
|
|
description: Whether the trigger targets a flow (true) or a script (false)
|
|
service_config:
|
|
type: object
|
|
description: Service-specific configuration (e.g., event types, filters)
|
|
additionalProperties: true
|
|
summary:
|
|
type: string
|
|
nullable: true
|
|
description: Short summary to be displayed when listed
|
|
required:
|
|
- script_path
|
|
- is_flow
|
|
- service_config
|
|
|
|
CreateTriggerResponse:
|
|
type: object
|
|
description: Response returned when a native trigger is created
|
|
properties:
|
|
external_id:
|
|
type: string
|
|
description: The external ID of the created trigger from the external service
|
|
required:
|
|
- external_id
|
|
|
|
SyncResult:
|
|
type: object
|
|
properties:
|
|
already_in_sync:
|
|
type: boolean
|
|
added_count:
|
|
type: integer
|
|
added_triggers:
|
|
type: array
|
|
items:
|
|
type: string
|
|
total_external:
|
|
type: integer
|
|
total_windmill:
|
|
type: integer
|
|
required:
|
|
- already_in_sync
|
|
- added_count
|
|
- added_triggers
|
|
- total_external
|
|
- total_windmill
|
|
|
|
NextCloudEventType:
|
|
type: object
|
|
properties:
|
|
id:
|
|
type: string
|
|
name:
|
|
type: string
|
|
description:
|
|
type: string
|
|
category:
|
|
type: string
|
|
path:
|
|
type: string
|
|
required:
|
|
- id
|
|
- name
|
|
- path
|
|
|
|
GoogleCalendarEntry:
|
|
type: object
|
|
properties:
|
|
id:
|
|
type: string
|
|
summary:
|
|
type: string
|
|
primary:
|
|
type: boolean
|
|
default: false
|
|
required:
|
|
- id
|
|
- summary
|
|
|
|
GoogleDriveFile:
|
|
type: object
|
|
properties:
|
|
id:
|
|
type: string
|
|
name:
|
|
type: string
|
|
mime_type:
|
|
type: string
|
|
is_folder:
|
|
type: boolean
|
|
default: false
|
|
required:
|
|
- id
|
|
- name
|
|
- mime_type
|
|
|
|
GoogleDriveFilesResponse:
|
|
type: object
|
|
properties:
|
|
files:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/GoogleDriveFile"
|
|
next_page_token:
|
|
type: string
|
|
required:
|
|
- files
|
|
|
|
SharedDriveEntry:
|
|
type: object
|
|
properties:
|
|
id:
|
|
type: string
|
|
name:
|
|
type: string
|
|
required:
|
|
- id
|
|
- name
|